Flask查询以及分页
以动物类做例子
下面创建动物的表
class Animal(db.Model):
id = db.Column(db.INTEGER, primary_key=True, autoincrement=True)
a_name = db.Column(db.String(32))
a_age = db.Column(db.Integer, default=1)
def save(self):
db.session.add(self)
db.session.commit()
下面定义了一个save方法
使我们在定义完对象之后,可以直接调用save方法去存储对象
django中存储对象的时候就是对象.save(),这里就是把flask中添加对象并且提交封装成了save()函数,使我们去调用save函数从而添加并且提交对象
路由:
@app.route('/add_animal/')
flask中路由跟django中的路由有一点不同,flask中路由以装饰器的形式直接写在视图函数上面,而django是从urls文件中单独去写路由,各有利弊。前者比较直观在那个视图函数上方就是那个的路由,不容易搞混,因为可能一个app路由有很多个,但是不利于查找,反而第二种方法,把路由统一存在一个urls文件中,这样方便管理,查找起来也不是很麻烦。
视图函数:
def add_animal():
name = request.args.get("name")
age = request.args.get("age")
animal = Animal()
animal.a_name = name
animal.a_age = age
animal.save()
return "动物添加成功"
flask中的视图函数跟django中的视图函数没什么不同。不同的点就是django中request.GET.get(),这里就是request.args.get()。
下面是查询:
animals = Animal.query.all()
animals = Animal.query.filter(Animal.a_age <= 3)
animals = Animal.query.filter(Animal.a_age.__le__(3))
animals = Animal.query.filter(Animal.a_name.contains("小"))
animals = Animal.query.filter(Animal.a_age.in_([1,2,3,4,5,