我在flask和sqlalchemy方面都是新手,我刚刚开始开发一个flask应用程序,现在我正在使用sqlalchemy。我想知道使用flask-sqlalchemy比使用sqlalchemy有什么显著的好处。我在http://packages.python.org/Flask-SQLAlchemy/index.html中找不到足够的动机,或者可能我不理解它的价值!我将非常感谢你的澄清。
发布于 2016-11-14 04:27:51
Flask-SQLAlchemy的主要功能是与Flask应用程序正确集成-它创建和配置引擎、连接和会话,并将其配置为与Flask应用程序一起工作。
这个设置相当复杂,因为我们需要创建scoped session,并根据Flask应用程序的请求/响应生命周期正确处理它。
在理想情况下,这将是Flask-SQLAlchemy的唯一特性,但实际上,它增加了一些东西。有关更多信息,请查看the docs。或者看看这篇概述了它们的博客文章:Demystifying Flask-SQLAlchemy (更新:原文暂时不可用,有一个snapshot on webarchive)。
当我第一次使用Flask和SQLAlchemy时,我不喜欢这种开销。我检查并从扩展中提取了会话管理代码。这种方法是有效的,尽管我发现很难正确地进行这种集成。
因此,更简单的方法(我正在参与的另一个项目中使用了这种方法)是直接插入Flask-SQLAlchemy,并且不使用它提供的任何附加功能。您将拥有db.session,并且可以像使用纯SQLAlchemy安装程序一样使用它。
发布于 2016-11-14 05:37:17
Flask-SQLAlchemy为你提供了许多很好的额外功能,否则你最终会使用SQLAlchemy来实现自己。
使用Flask-SQLAlchemy的积极方面
apply_driver_hacks的方法,它自动设置合理的默认值,如MySQL池大小上的()代码示例
自动设置表名。Flask-SQLAlchemy自动设置表名转换ClassName > class_name这可以通过设置__tablename__类列表项来覆盖
使用Flask-SQLAlchemy的负面影响
如果你需要的话,使用Flask-SQLAlchemy的
发布于 2013-03-04 11:18:24
老实说,我看不出有什么好处。IMHO,Flask-SQLAlchemy创建了一个你并不真正需要的附加层。在我们的例子中,我们有一个相当复杂的Flask应用程序,它有多个数据库/连接(主-从),同时使用ORM和Core,其中,我们需要控制我们的会话/ DB事务(例如,dryrun vs commit模式)。Flask-SQLAlchemy添加了一些额外的功能,比如自动销毁会话,为你假设一些通常不是你需要的东西。
https://stackoverflow.com/questions/14343740
复制相似问题