Python (仅限)使用SqlAlchemy生成SQL代码

Python (仅限)使用SqlAlchemy生成SQL代码,python,orm,sqlalchemy,Python,Orm,Sqlalchemy,我可以使用SqlAlchemy ORM映射器只生成SQL代码吗 对于简单的表,我可以使用如下代码 print users_table.select() print users_table.insert() print users_table.update() print users_table.delete() 但在ORM中,我只找到了一种SELECT语句的方法: TestUser = User("John", "Doe") print session.query(User) 如何生成用于插

我可以使用SqlAlchemy ORM映射器只生成SQL代码吗

对于简单的表,我可以使用如下代码

print users_table.select()
print users_table.insert()
print users_table.update()
print users_table.delete()
但在ORM中,我只找到了一种SELECT语句的方法:

TestUser = User("John", "Doe")
print session.query(User)
如何生成用于插入/更新/删除的SQL(无需实际操作数据库)


谢谢。

也许您想要SQLAlchemy核心表达式语言,而不是ORM


ORM被设计成非常紧密的数据绑定,因此不会真正与其DB会话解耦。另一方面,表达式语言可以直接转换为SQL。(只需获取任何结果对象并将其传递到
str()
,您将获得等效的SQL。)

您可以通过sqlalchemy.orm.class\u mapper函数访问映射类的表对象:


users_table = class_mapper(User).mapped_table 
users_table.insert(..)
如果您使用的是声明性语法,则可以执行以下操作:


users_table = User.__table__
users_table.insert(..)

很简单。就像您所做的一样,您可以将查询转换为字符串

TestUser = User("John", "Doe")
# convert querying object to string
query_stat = str(session.query(User))
print query_stat 

在这里,查询统计应该是SQL查询语句。

如果执行
session.query(MyModel).count()
,该怎么办?