sqlalchemy 中的scoped_session(sessionmaker()) 或普通sessionmaker() ?

2024-02-10

我在我的网络项目中使用 SQlAlchemy。我应该用什么-scoped_session(sessionmaker())或普通sessionmaker()- 为什么?或者我应该使用其他东西?

## model.py
from sqlalchemy import *
from sqlalchemy.orm import *

engine = create_engine('mysql://dbUser:dbPassword@dbServer:dbPort/dbName',
pool_recycle=3600, echo=False)
metadata = MetaData(engine)
Session = scoped_session(sessionmaker())
Session.configure(bind=engine)
user = Table('user', metadata, autoload=True)

class User(object):
pass

usermapper = mapper(User, user)

## some other python file called abc.py
from models import *

def getalluser():
   session = Session()  
   session.query(User).all()
   session.flush()
   session.close()

## onemore file defg.py
from models import *

def updateuser():
   session = Session()  
   session.query(User).filter(User.user_id == '4').update({User.user_lname: 'villkoo'})
   session.commit()
   session.flush()
   session.close()

我创建一个session = Session()每个请求的对象,然后我关闭它。我做的是正确的事还是有更好的方法?


正在阅读文档 http://www.sqlalchemy.org/docs/06/orm/session.html?highlight=scoped_session#unitofwork-contextual被推荐:

the scoped_session()提供了一个函数,它生成一个线程管理的注册表Session对象。它通常用于 Web 应用程序,以便可以使用单个全局变量来安全地表示具有本地化到单个线程的对象集的事务会话。

简而言之,使用scoped_session()为了线程安全。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sqlalchemy 中的scoped_session(sessionmaker()) 或普通sessionmaker() ? 的相关文章

  • 从内存地址创建python对象(使用gi.repository)

    有时我需要调用仅存在于 C 中的 gtk gobject 函数 但返回一个具有 python 包装器的对象 之前我使用过基于 ctypes 的解决方案 效果很好 现在我从 PyGtk import gtk 切换到 GObject intro
  • Python 不考虑 distutils.cfg

    我已经尝试了给出的所有内容 并且所有教程都指向相同的方向 即使用 mingw 作为 python 而不是 Visual C 中的编译器 我确实有 Visual C 和 mingw 当我想使用 pip 安装时 问题开始出现 它总是给Unabl
  • 使用 Boto3 超时的 AWS Lambda 函数

    我已经解决了我自己的问题 但无论如何我都会发布它 希望能节省其他人几个小时 我在 AWS 上有一个无服务器项目 使用 Python 将记录插入到 kinesis 队列中 但是 当我使用 boto3 client kinesis 或 put
  • Python 内置对象的 __enter__() 和 __exit__() 在哪里定义?

    我读到每次使用 with 时都会调用该对象的 enter 和 exit 方法 我知道对于用户定义的对象 您可以自己定义这些方法 但我不明白这对于 打开 等内置对象 函数甚至测试用例是如何工作的 这段代码按预期工作 我假设它使用 exit 关
  • 使用 Pandas 从 csv 文件读取标题信息

    我有一个包含 14 行标题的数据文件 在标头中 有经纬度坐标和时间的元数据 我目前正在使用 pandas read csv filename delimiter header 14 读取文件 但这只是获取数据 我似乎无法获取元数据 有人知道
  • 如何用函数记录一个文件?

    我有一个带有函数 lib py 但没有类的python 文件 每个函数都有以下样式 def fnc1 a b c This fonction does something param a lalala type a str param b
  • Python speedtest.net,或等效的[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 是否有一个 Python 库可以实现 SpeedTest net 测试或等效的互联网连接速度测试 GitHub上有一个项目叫速度检查 https gi
  • NSUserNotificationCenter.defaultUserNotificationCenter() 使用 PyInstaller 返回 None

    我正在尝试将通知发送到通知中心 Mac OSX 我正在使用 PyObjC 绑定来使用我们的 python 应用程序中的 cocoa api 我正在使用以下代码片段 import Foundation import objc NSUserNo
  • 使用 scikit 时 scipy.sparse 矩阵的缩放问题

    在使用 scikit learn 解决机器学习问题时 我需要在使用 SVM 进行训练之前对 scipy sparse 矩阵进行缩放 但在文档 http scikit learn org stable modules preprocessin
  • 列表推导式和 for 循环中的 Lambda 表达式[重复]

    这个问题在这里已经有答案了 我想要一个 lambda 列表 作为一些繁重计算的缓存 并注意到这一点 gt gt gt j for j in lambda i for i in range 10 9 9 9 9 9 9 9 9 9 9 Alt
  • 我可以用关闭的文件对象做什么?

    当您打开文件时 它存储在一个打开的文件对象中 该对象使您可以访问该文件的各种方法 例如读取或写入 gt gt gt f open file0 gt gt gt f
  • 无法通过 Android 应用程序访问我的笔记本电脑的本地主机

    因此 我在发布此内容之前做了一项研究 我发现的解决方案不起作用 更准确地说 连接到我的笔记本电脑的 IPv4192 168 XXX XXX 没用 连接到10 0 2 2 加上端口 不起作用 我需要测试使用 Django Rest 框架构建的
  • 如何从 python 脚本执行 7zip 命令

    我试图了解如何使用 os system 模块来执行 7zip 命令 现在我不想用 Popen 或 subprocess 让事情变得复杂 我已经安装了 7zip 并将 7zip exe 复制到我的用户文件夹中 我只想提取我的测试文件 inst
  • Pandas 字典键到列[重复]

    这个问题在这里已经有答案了 我有一个像这样的数据框 index column1 e1 u c680 5 u c681 1 u c682 2 u c57 e2 u c680 6 u c681 2 u c682 1 u c57 e3 u c68
  • pandas groupby 操作缺少数据

    在 pandas 数据框中 我有一列如下所示 0 M 1 E 2 L 3 M 1 4 M 2 5 M 3 6 E 1 7 E 2 8 E 3 9 E 4 10 L 1 11 L 2 12 M 1 a 13 M 1 b 14 M 1 c 15
  • Snakemake:将多个输入用于具有多个子组的一个输出的规则

    我有一个工作管道 用于下载 比对和对公共测序数据执行变体调用 问题是它目前只能在每个样本的基础上工作 i e作为每个单独测序实验的样本 如果我想对一组实验 例如样本的生物和 或技术复制 执行变体调用 则它不起作用 我试图解决它 但我无法让它
  • 根据标点符号列表替换数据框中的标点符号[重复]

    这个问题在这里已经有答案了 使用 Canopy 和 Pandas 我有数据框 a 其定义如下 a pd read csv text txt df pd DataFrame a df columns test test txt 是一个单列文件
  • tf.print() vs Python print vs tensor.eval()

    看来在Tensorflow中 至少有三种方法可以打印出张量的值 我一直在读here https www freecodecamp org news debugging tensorflow a starter e6668ce72617 an
  • 如何有效地比较 pandas DataFrame 中的行?

    我有一个 pandas 数据框 其中包含雷击记录以及时间戳和全球位置 格式如下 Index Date Time Lat Lon Good fix 0 1 20160101 00 00 00 9962692 7 1961 60 7604 1
  • 想要定制django Rest框架Browsable API页面

    问题 我想自定义 django Rest Framework Browsable API 页面 使其具有与我的 Web 应用程序的其余部分相同的外观和感觉 安装的软件 Python 3 6 Django 1 10 6 Django 休息框架

随机推荐

  • 如何使用twitter api获取twitter用户的电子邮件地址

    我想在我的网站上放置一个 使用 Twitter 登录 的插件 并且在用户允许我的 Twitter 应用程序访问其数据后 我的网站需要获取用户的 twitterID 和电子邮件 我浏览了 Twitter 开发文档 但似乎总是关于 OAuth
  • opencv/c++ 中正确的阈值函数

    我是图像处理和 opencv 的新手 我需要对灰度图像进行阈值处理 该图像包含0到1350之间的所有值 我想保留所有大于100的值 我在opencv中找到了这个函数 cv threshold Src1 Last 100 max BINARY
  • 在工作副本中动态更改 SVN+SSH URI 中的用户名

    我正在使用 SVN SSH 从 SVN 服务器上签出存储库的工作副本 该服务器上的所有开发人员都是 SVN 服务器的成员 developer组并对存储库目录和关联元数据具有完全读 写权限 svn co svn ssh email prote
  • Kubernetes 集群中的 Coredns 处于挂起状态 [已关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我正在尝试配置 2 节点 Kubernetes 集群 首先 我尝试在 CentOS VM 上配置集群的主节点 我已使用 kubeadm
  • 无法在 azure 容器实例中将 azure 文件共享装载为 mongodb 卷

    我正在尝试使用 azure 容器实例设置 mongo DB 实例并将其安装在 Azure 文件共享上 我们收到以下错误 initandlisten WiredTiger error 1 1579245437 724939 1 0x7f941
  • 在 Nativescript 和 Angular Schematics 的共享代码中找不到模块

    我正在使用 Angular 和 Nativescript Schematics 我已经安装了nativescript ui sidedrawer 当我跑步时 tns run ios bundle 本机版本已编译并部署到设备 但是当我运行时
  • doall dorun dideq 和 for 函数有什么区别?

    功能有什么区别doall dorun doseq and for 我发现一些信息分散在互联网上 但我认为最好将这些信息集中在这里 dorun doall and doseq都是为了强制惰性序列 大概是为了产生副作用 dorun 强制返回时不
  • 使用 NSPredicate 按对象属性过滤

    我有一个可变的自定义对象数组 例如 我想按对象的属性过滤该数组myObject attributeOne 如何创建 NSPredicate 来使用 myArrayOfObjects filterUsingPredicate
  • UI层向业务层返回什么?

    我正在编写一个 ASP NET 应用程序 它有 UI 层 业务逻辑层和数据访问层 我从数据层将业务对象返回到业务逻辑层 并将它们传递到 UI 层 但是 当我想使用 UI 层的数据执行保存 插入时 我不确定该怎么做 我应该在 UI 层创建业务
  • Python (2.4) 字典中的排序

    r dict answer1 value1 answer11 value11 answer2 value2 answer3 value3 answer4 value4 for i in r dict if answer in i lower
  • Fontforge 脚本如何为字形添加连字

    我正在 Fontforge 上使用脚本制作字体 一切顺利 但我有这个问题 我不知道如何指定选定的字形 如果其他两个字形同时出现 则显示选定的字形 我已经为此创建了查找表和子表 但我不知道为指定字形定义一些连字的函数 以下是创建表和子表以将连
  • 使用 Python 和 xlwings 在 Excel 中查找活动/选定单元格的范围

    我正在尝试用Python 使用xlwings 编写一个简单的函数 该函数读取Excel中当前的 活动 单元格值 然后将该单元格值从活动单元格写入下一列中的单元格 如果我使用绝对引用指定单元格 例如 range 3 2 那么一切正常 但是 一
  • 在 Linux 中向当前日期添加 x 秒

    我这里有两台 Linux CentOS 6 0 机器 我需要在当前日期时间上添加 或删除 5 秒 最后 我的两台机器都会有5秒的差距 一台时间正确 另一台或多或少有5秒 我知道我可以使用以下命令更改日期 date s DD MMM YYYY
  • 对一个集合的元素执行操作并迭代结果以执行其他操作

    如果我有2个收藏 List
  • Eclipse Markdown 表未呈现

    我现在已经在 Eclipse 中尝试了四种不同的 Markdown 编辑器 但它们都无法在预览中渲染表格 它们总是平坦的 一个简单的表就像 hans pans 1 2 渲染得像 hans pans 1 2 我知道语法是正确的 因为它在 Ec
  • 根据输入值重定向到页面

    我正在尝试在页面上创建一个需要用户输入文本的表单 提交表单后 用户将被重定向到分配给它的页面 我的问题是我哪里出了问题 我应该如何解决这个问题 有人可以添加 JSFiddle 或 Codepen io 笔用于清除目的吗 例如 用户输入并提交
  • 在 R (CRAN) 中创建和裁剪网格

    我需要在 gstat 库中创建一个用于空间插值的掩模网格 具体来说 我有随机分布的不同采样点 我需要创建包围这些点的最小凸多边形 然后 我必须创建一个空间网格 该网格应由计算的外壳裁剪 以将插值限制在该多边形的范围内 如果有人能向我解释详细
  • Java限制资源使用

    有没有办法限制java使用的核心数量 同样 是否有可能限制该核心的使用量 您可以在 Linux 上使用任务集 您还可以降低进程的优先级 但除非 CPU 繁忙 否则进程将获得尽可能多的 CPU 我有一个将线程专用于核心的库 称为 Java T
  • 启动时自动运行 Jetty

    我正在尝试让 Jetty 在我的 Ubuntu 上自动启动 我已经完成了这些命令 cp opt jetty bin jetty sh etc init d update rc d jetty sh defaults 但是当我运行它时 我得到
  • sqlalchemy 中的scoped_session(sessionmaker()) 或普通sessionmaker() ?

    我在我的网络项目中使用 SQlAlchemy 我应该用什么 scoped session sessionmaker 或普通sessionmaker 为什么 或者我应该使用其他东西 model py from sqlalchemy impor