Fork me on GitHub

迁移,数据相关,分页

migrate

通过命令行执行迁移

安装模块: pip install flask-migrate

导入模块: from flask-migrate import Migrate

实例化: migrate = Migrate(app=app, db=db)

在manage.py中添加命令:

1
2
3
4
from flask_migrate import MigrateCommand
。。。。。
manager = Manager(app)
manager.add_command('db', MigrateCommand)

命令行迁移命令:

1
2
3
4
python manage.py db init 初始化  生成migrations文件加 只做一次就可以
python manage.py db migrate 生成迁移文件
python manage.py db upgrade 执行迁移
python manage.py downgrade 回退操作

数据创建

变量 = 类(属性1=?,属性2=?……)

db.session.add(变量) 或者使用 db.session.add_all(变量列表)

db.session.commit()

数据查询

filter_by :

filter_by 函数 只能做精确查找 返回列表 可以调用first函数来获取数据,或者是用first_or_404 也可以拿出一个数据,例子:User.query.filter_by(age=18)

filter

filter: 使用方法filter(类名.属性名.运算符(‘xxx’))

例子: User.query.filter(User.age=18)

1
2
3
4
5
6
7
8
9
__gt__           大于
__ge__           大于等于
__lt__           小于
__le__           小于等于
contains         包含
startwith        以什么开头
endwith          以什么结尾
like             包含什么需要配合%或者_使用
in_              后面填数组,表示在数组内的数据

get

get仅能查询id

limit,offset,order_by

此三个命令对查询道德数据进行操作

limit(n): 表示最多获取n个数据

offset(n): 表示跳过n个数据

order_by(‘属性’): 表示按照属性进行排序,默认升序,在属性前加上符号则为降序

数据删除

基于查询

db.session.delete(模型对象)

db.session.commit() 删除成功

分页

page表示第几页,per_page表示每页的数据数量

pagination = 查询到的数据总数.paginate(page, per_page, error_out=False)

1
2
3
4
5
6
7
pagination.items            每一页的数据
pagination.iter_pages()     表示页数列表
pagination.has_prev         是否有上一页
pagination.has_next         是否有下一页
pagination.prev_num         上一页的页码数
pagination.next_num         下一页的页码数
pagination.pages            总页数