繁体   English   中英

(仅)使用SqlAlchemy生成SQL代码

[英](Only) generate SQL-Code with SqlAlchemy

我可以使用SqlAlchemy ORM-Mapper仅生成SQL代码吗?

使用简单的表格,我可以使用像

print users_table.select()
print users_table.insert()
print users_table.update()
print users_table.delete()

但是使用ORM我只找到了SELECT-Statements的方法:

TestUser = User("John", "Doe")
print session.query(User)

如何为INSERT / UPDATE / DELETE生成SQL(无需真正操作数据库)?

谢谢。

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

http://www.sqlalchemy.org/docs/core/index.html

ORM的设计是非常严格的数据绑定,因此不会真正与其数据库会话分离。 另一方面,表达式语言可以直接转换为SQL。 (只需获取任何生成的对象并将它们传递给str() ,您将获得等效的SQL。)

您可以通过sqlalchemy.orm.class_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 

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM