flask相关知识点

模型关系

redis 安装
G:
cd 下载\360下载\Redis-x64-3.0.504
redis-server.exe redis.windows.conf

数据模型

1:1
外键+唯一约束
1:N
外键

  • M:N
    两个外键,生成一-张额外的关系表

分页查询

# 展示所有的学生
@blue.route('/studentlist/')
def student_list():
    # students = Student.query.all()
    # students = Student.query.filter(Student.studentname.like("%小华%"))
    # students = Student.query.filter(Student.id.__lt__(10))
    # students = Student.query.filter(Student.studentname.__le__(10))
    # students = Student.query.filter(Student.studentname.__gt__(10))
    # students = Student.query.filter(Student.studentname.__ge__(10))
    # students = Student.query.filter(Student.studentname.contains('44'))
    students = Student.query.filter(Student.studentname == '小张10')
    # students = Student.query.all()
    students = Student.query.filter(Student.studentname.startswith('小华'))
    students = Student.query.filter(Student.studentname.endswith('0'))
    #
    students = Student.query.filter_by(id=1)  # 常用在级联数据上
    students = Student.query.limit(3)  # 限制
    students = Student.query.offset(1)  # 偏移
    # students = Student.query.offset(1).order_by("id")  # 错误组合
    students = Student.query.order_by("id").limit(11).offset(1)  # 正确组合
    # students = Student.query.order_by("-id")  # 排序

    for ss in students:
        print(ss.id)
    return render_template('studentlist.html', studentlist=students)


@blue.route('/get/')
def getstudent():
    student = Student.query.get(2)
    # student = Student.query.order_by(Student.id.desc()).first()
    # student = Student.query.order_by('id').first()
    print(student.id)
    return 'chenggong'
    # return render_template('studentlist.html', studentlist=student)


@blue.route('/getstudentwithpage/')
def get_page():
    page = request.args.get("page", 1, type=int)
    print(page)
    print(type(page))
    per_page = request.args.get('per_page', 3, type=int)
    students = Student.query.limit(per_page).offset((page - 1) * per_page)
    return render_template('studentlist.html', studentlist=students)


@blue.route('/getpaginate/')
def get_paginate():
    page = request.args.get("page", 1, type=int)
    per_page = request.args.get('per_page', 3, type=int)
    max_per_page = request.args.get('max_per_page', 20, type=int)
    pagination = Student.query.paginate(page, per_page, null, max_per_page)
    students = pagination.items
    return render_template('studentlist.html', studentlist=students)


@blue.route('/getpaginate1/', methods=['GET', 'POST'])
def get_paginate1():
    keyword = request.form.get('keyword')
    page = request.args.get("page", 1, type=int)
    per_page = request.args.get('per_page', 3, type=int)
    max_per_page = request.args.get('max_per_page', 20, type=int)
    pagination = Student.query.paginate(page, per_page, null, max_per_page)
    if keyword is not None
            pagination = Student.query.filter(Student.studentname.contains(keyword)).paginate(page, per_page, null, max_per_page)
    students = pagination.items
    print(keyword)
    return render_template('studentpagination.html', pagination=pagination, per_page=per_page)

例子

# students = Student.query.all()
# students = Student.query.filter(Student.studentname.like("%小华%"))
# students = Student.query.filter(Student.id.__lt__(10))
# students = Student.query.filter(Student.studentname.__le__(10))
# students = Student.query.filter(Student.studentname.__gt__(10))
# students = Student.query.filter(Student.studentname.__ge__(10))
# students = Student.query.filter(Student.studentname.contains('44'))
students = Student.query.filter(Student.studentname == '小张10')
# students = Student.query.all()
students = Student.query.filter(Student.studentname.startswith('小华'))
students = Student.query.filter(Student.studentname.endswith('0'))
#
students = Student.query.filter_by(id=1)  # 常用在级联数据上
students = Student.query.limit(3)  # 限制
students = Student.query.offset(1)  # 偏移
# students = Student.query.offset(1).order_by("id")  # 错误组合
students = Student.query.order_by("id").limit(11).offset(1)  # 正确组合
# students = Student.query.order_by("-id")  # 排序

检索运算符

contians 包含
like 跟上面差不多
gt 大于 >=
ge 大于等于
lt 小于 <
le 小于等于 <=
startswith 开头是
endswith 结尾是

筛选
filter_by() 条件
offset() 偏移
limit() 限制
order_by() 排序
get() 主键获取要带参数
first() 第一个
paginate() 分页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值