函数 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()
|