我们正在尝试建立一个将使用 MySQL 而不是 SQLAlchemy 的 Pyramid 项目。
我对 Pyramid/Python 的经验有限,所以我希望能在网上找到一个指南。不幸的是,我无法找到任何东西来推动我们朝着正确的方向前进。大多数搜索结果都是针对尝试使用 SQLAlchemy 的原始 SQL/MySQL 命令的人(许多是重新发布的链接)。
有人有这方面有用的教程吗?
Pyramid 在其基础上并不假定您将使用任何一个特定的库来帮助您实现持久性。那么,为了让事情变得更容易,对于希望使用诸如 SQLALchemy 之类的库的人,Pyramid 库包含Scaffolding,它本质上是一些为基本站点自动生成的代码,并添加了一些设置项目,如 SQLAlchemy 或特定的路由策略。金字塔文档应该能够引导您使用“pyramid_starter”脚手架创建一个新项目,该脚手架在没有 SQLAlchemy 的情况下设置了基本站点。
这将为您提供设置视图所需的基础知识,但接下来您需要添加代码以允许您连接到数据库。幸运的是,由于您的网站只是 python 代码,学习如何在 Pyramid 中使用 MySQL 只是学习如何在 Python 中使用 MySQL,然后在 Pyramid 项目中执行完全相同的步骤。
请记住,即使您更愿意使用原始 SQL 查询,您仍然可能会在 SQLAlchemy 中找到一些用处。在它的基础级别,SQLAlchemy 简单地包装了 DBAPI 调用并添加了有用的功能,如连接池。ORM 功能实际上是对紧凑的低级 SQLAlchemy 工具集的重要补充。
sqlalchemy 不会假设您将使用它的 orm。如果你想使用普通的 sql,你可以这样做,只需要 sqlalchemy 已经提供的东西。例如,如果您按照食谱中的食谱进行操作,您将可以访问 sqlalchemy 会话对象request.db
,您的处理程序将如下所示:
def someHandler(request):
rows = request.db.execute("SELECT * FROM foo").fetchall()
快速教程展示了一个使用 SQL 但不使用 SQLAlchemy 的 Pyramid 应用程序。它使用 SQLite,但应该很容易适应 MySQL。