函数 TIMESTAMPDIFF
1 2 3 4 5 6
| from peewee import SQL, fn
Task.select().where( (Task.recent_sync_time.is_null(True)) | (fn.TIMESTAMPDIFF(SQL("MINUTE"), Task.recent_sync_time, fn.NOW()) > Task.interval) )
|
注意这里的 MINUTE
必须使用 SQL
函数格式化,如:SQL("MINUTE")
参考
JSONField
Peewee
中本来是没有 JSONField
这个数据类型的,我们可以利用官方的扩展包
1
| from playhouse.mysql_ext import JSONField
|
也可以通过自定义类型
或者 jsonfield
这个三方包完成
参考
Model To Dict
1 2 3 4 5 6 7
| from playhouse.shortcuts import model_to_dict
def get_data_list(info_id): datas = Data.select().where(Data.info_id == info_id) datas = [model_to_dict(data) for data in datas] return datas
|
1 2 3 4
| Data.delete().where( Data.info_id == info_id, fn.json_extract(Data.data, "$." + field) == value, ).execute()
|