2017-04-21 22 views
0

考虑以下几点:Peewee:选择行是否含有某个关键字

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()包含特定关键字的所有记录。 例如:我要选择含“你好”,在那里所有的记录Entry.task_name

回答

1

你可以尝试像下面

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

这相当于做:

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

的通配符(“%”)可能根据后端数据库的不同而不同。

+0

其实当使用“contains”时,你不需要包含通配符! – coleifer

+0

感谢您的编辑! –