在Peewee Models Python中创建“查询方法”

时间:2017-10-23 21:42:24

标签: python flask peewee

我在一个烧瓶项目中使用Peewee进行MySQL连接。我想知道是否可以在模型的方法中进行查询。这将使路线代码更清晰,例如:

Person.py:

from peewee import *

db = SqliteDatabase('people.db')

class Person(Model):
    name = CharField()
    birthday = DateField()
    is_relative = BooleanField()

    class Meta:
        database = db # This model uses the "people.db" database.

    def getPersonByName(name):
        #logic to get persons by name
        #return result

Server.py:

 .
 .
 .
 @app.route('/<name>')
 def index(name):
     persons = Person.getPersonByName(name)
     return render_template('names.html', persons=persons)

1 个答案:

答案 0 :(得分:4)

可以将自定义方法添加到模型中以进行查询,这样模型就可以变胖,视图也很薄弱。

class Person(Model):
    ...

    @classmethod
    def get_person_by_name(cls, name):
        result = cls.select().where(cls.name=name)
        return result


 @app.route('/<name>')
 def index(name):
     persons = Person.get_person_by_name(name)
     return render_template('names.html', persons=persons)