设置Pyramid使用MySQL原生接口而非SQLAlchemy
我们正在尝试搭建一个Pyramid项目,打算使用MySQL,而不是SQLAlchemy。
我对Pyramid和Python的经验不多,所以希望能在网上找到一些指导。不幸的是,我没有找到任何能帮助我们找到正确方向的资料。大多数搜索结果都是关于人们如何在SQLAlchemy中使用原始SQL/MySQL命令的(很多都是重复的链接)。
有没有人有有用的教程可以分享一下?
3 个回答
这个快速教程展示了一个使用Pyramid框架的应用程序,它用到了SQL,但没有使用SQLAlchemy。这个应用使用的是SQLite数据库,不过如果你想用MySQL的话,改起来应该也不太难。
sqlalchemy 并不假设你一定会使用它的 ORM(对象关系映射)。如果你想用普通的 SQL 语句,也完全可以,只需要用 sqlalchemy 已经提供的功能就行了。比如,如果你按照 食谱中的步骤,你就可以通过 request.db
访问 sqlalchemy 的会话对象,你的处理程序大概会是这样的:
def someHandler(request):
rows = request.db.execute("SELECT * FROM foo").fetchall()
Pyramid这个框架在基础上并不强制你使用某个特定的库来处理数据存储。为了方便那些想用像SQLAlchemy这样的库的人,Pyramid提供了一种叫做脚手架的功能,简单来说就是一些自动生成的代码,帮助你快速搭建一个基本的网站,并且可以添加一些设置,比如SQLAlchemy或者特定的路由策略。你可以参考Pyramid的文档,了解如何使用“pyramid_starter”脚手架创建一个新项目,这个脚手架会帮你搭建一个没有SQLAlchemy的基本网站。
这会给你提供设置视图所需的基础,但接下来你需要添加代码来连接数据库。幸运的是,因为你的网站就是用Python写的,所以在Pyramid中使用MySQL其实就是学习如何在Python中使用MySQL,然后在你的Pyramid项目中做同样的步骤。
要记住,即使你更喜欢直接使用原始的SQL查询,你仍然可能会发现SQLAlchemy有用。简单来说,SQLAlchemy就是在DBAPI调用的基础上,增加了一些有用的功能,比如连接池。ORM功能实际上是对SQLAlchemy这个底层工具集的一个重要补充。