python - 如何从peewee获取sql查询?

标签 python python-3.x peewee

简单的 peewee 示例: 具有自动增量“id”和字符字段“name”的 MySQL DB“Pet”。

my_pet = Pet.select().where(name == 'Garfield')

使用 .sql() 我们得到 sql 解释。

如何从以下位置获取原始 sql 查询:

my_pet = Pet.get(name='Garfield')

?

最佳答案

当你写的时候:

my_pet = Pet(name='Garfield')

数据库中什么也没有发生。

您只是创建了一个对象。没有魔法,因为 peewee 是一个 ActiveRecord ORM,只有在您调用 Model.save()Model.create() 等方法时才会保存。

如果您希望 SQL 用于类似 Model.create() 的查询,那么您应该考虑使用 Model.insert():

insert_stmt = Pet.insert(name='Garfield')
sql = insert_stmt.sql()
new_obj_id = insert_stmt.execute()

缺点是您不会返回模型实例,只会返回主键。

关于python - 如何从peewee获取sql查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32691602/

相关文章:

python - 我如何操作列表?

python - peewee - 与 Database() 初始化分开定义模型

python - 如何将新的 ".where()"添加到现有的 peewee 查询中?

python - json 格式转换为 float 列表

python - 如何更改 Flask-peewee 中的 UserDoesNotExist SELECT 行为 - python 和 mysql

Python 奇怪的类变量用法

python - 如何使用 webdriver 获取文本区域的文本内容?

python - Pygame如何让背景不断滚动?

python - 将值从列表列表添加到字典键

python - 薛定谔字典: getting values for dynamic keys on indirect access