Peewee:select 行,如果它们包含某个关键字

Peewee: select rows if they contain a certain keyword

鉴于以下情况:

import datetime

from peewee import *

db = SqliteDatabase("wl.db")


class Entry(Model):
    my_name = CharField(max_length=100)
    task_name = CharField(max_length=100)
    minutes = IntegerField(default=0)
    notes = CharField(max_length=200)
    created_at = DateTimeField(default=datetime.datetime.now)

    class Meta:
        database = db


def initialize():
    e = Entry(my_name="bot", task_name="hello world", minutes=12, notes="")
    e.save()
    e = Entry(my_name="bot 2", task_name="random hello random", minutes=1, notes="random")
    e.save()

if __name__ == "__main__":
    db.connect()
    db.create_tables([Entry], safe=True)
    initialize()

是否有一个查询,我可以在其中 select() 所有包含特定关键字的记录。 例如:我想 select 所有包含 "hello" 的记录 Entry.task_name

你可以试试下面的方法

query = Entry.select().where(Entry.task_name.contains('hello'))

这相当于做:

query = Entry.select().where(Entry.task_name ** '%hello%')

根据后端数据库的不同,通配符 ("%") 可能会有所不同。