首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问第三方库中的金字塔数据库会话

访问第三方库中的金字塔数据库会话
EN

Stack Overflow用户
提问于 2014-03-27 14:28:21
回答 2查看 657关注 0票数 2

我在为金字塔写一个图书馆。一个方面涉及向库提供一个模型类,然后从数据库中检索模型的所有实例。但是,如果没有对会话工厂的访问,我就无法与DB交互。

在Django,这是幕后处理的。对于金字塔和SQLAlchemy,情况并非如此。

对于我来说,是否有一种标准的方法可以在金字塔中获得当前线程的DB会话,而不知道如何设置一个特定的项目(因为这是一个可重用的库)?

PS。我仍在SQLAlchemy的这一地区工作,所以请原谅我的困惑。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-28 08:05:06

您可以在继承的类中指定sqla会话为属性,就像工厂男孩做的那样:https://factoryboy.readthedocs.org/en/latest/orms.html?highlight=sqlalchemy#sqlalchemy

另一种方法是在"config.include“扩展之前创建接口,并要求在应用程序注册表中注册sqlalchemy会话为实用程序。也许jinja2会澄清这个解决方案。

票数 1
EN

Stack Overflow用户

发布于 2014-04-01 10:09:43

我建议你读一下

向请求对象添加会话的约定。您的库只是对此进行了假设,并将其写入包文档中。

  • http://blog.safaribooksonline.com/2014/01/07/building-pyramid-applications/

全局会话与非全局会话

  • 食谱/en/最新/数据库/sqlalchemy.html

一个正式的教程展示了这些概念

  • 教程/数据库.

许多金字塔应用程序使用包zope.sqlalchemy集成应用程序事务管理和DB会话管理。这种方法甚至被推荐为许多选项之一,由SQLAlchemy文档编写。zope.sqlalchemy的文档有些混乱,至少对我来说是这样。对于使用SQLAlchemy的金字塔和线程本地会话,整个主题始终是人们困惑的根源。

若要查看使用这些包的功能齐全的金字塔应用程序,请参阅ToDoPyramid -金字塔文档页面中列出的示例应用程序之一

克隆项目使数据库相关的代码至少对我来说更易于测试和可读性。我发现这些概念工作得很好--如果正确设置数据库的环境的话。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22690609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档