sqlalchemy - 使用 SQLAlchemy 的 Pylons 应用程序中的原始 SQL?

标签 sqlalchemy pylons

我继承了一个使用 SQLAlchemy 的 Pylons 应用程序。我对 SQLAlchemy 一无所知,对 Pylons 知之甚少:)

我需要在应用程序中运行一些原始 SQL。 SQLAlchemy 目前似乎以下列方式工作(示例代码):

import myapp.model as model
model.Session.query(model.KeyValue) # existing code
            .join(model.Key)
            .filter(model.Key.name == name)
            ).count() == 0, name

如何让它运行原始 SQL?我看到我需要一个 execute() 语句,但我该如何运行它呢?以下均失败:

model.Session.execute('create table hello_world;')
model.Connection.execute("""
create table hello_world;
""")

什么是魔法调用?现有代码中没有对 Connection 对象的引用,我不确定如何创建一个。

最佳答案

您可以通过使用它的connection method 来获取Session 使用的连接。 :

connection = model.Session.connection()

然后您可以发出您的查询:

connection.execute('create table hello_world;')

请注意,在 Pylons 模型中。Session 不是 sqlalchemy.orm.session.Session 。它是 sqlalchemy.orm.scoping.ScopedSession实例 .这就是它在 model.meta 模块中的创建方式:

Session = scoped_session(sessionmaker())

关于sqlalchemy - 使用 SQLAlchemy 的 Pylons 应用程序中的原始 SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3754806/

相关文章:

python - 从 MySQL 数据库创建 Pyramid/SQLAlchemy 模型

python - 从 sqlAlchemy 表模型中获取表列

python - Flask SQLAlchemy session 不同步

python - 使用 create_engine 从 SQLAlchemy 到 MSSQL

python - Django 有哪些 Pylons 没有的功能?

python - 在 mako 中,如何循环列表并显示每个值?

python - SQLAlchemy:pool_size 和 SQLite

python - Pylons:不小心输入了 'setup.py install' ,我该如何修复?

python - 连接在(大)文件上传时重置

Python Webframework 混淆