[英](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.