筛选
查询数据筛选语法:类名.query.筛选符
.all( ):获取结果集;.count( ):获取查询到的对象数量
类名.query.filter(类名.属性.运算符('xxx')).all()
类名.query.filter(类名.属性 数学运算符 值).all()
筛选符:
filter_by():根据什么过滤,通常用在级连关系查询上,属性=值。不常用; filter(): 查询获取数据
offset(): 偏移,偏移前几条取数据; limit(): 限制,限制取多少条数据; order_by(): 根据什么字段排序;
get(): 根据主键获取数据; first(): 取第一个元素; paginate(): 分页
- 数学运算符:
contains 包含,模糊查询; startswith 以什么开始; endswith 以什么结束;
in_ 在什么范围中; like 包含,模糊查询; __gt__ 大于
__ge__ 大于等于; __lt__ 小于; __le__ 小于等于
1 import random 2 from operator import or_, and_ 3 from flask import Flask, render_template, request, redirect, url_for 4 from flask_sqlalchemy import SQLAlchemy 5 from sqlalchemy import text 6 7 app = Flask(__name__) 8 app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///flaskmodel.sqlite" 9 app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False 10 db = SQLAlchemy(app) 11 12 13 class Student(db.Model): 14 id = db.Column(db.Integer, primary_key=True, autoincrement=True) 15 name = db.Column(db.String(32), unique=True) 16 score = db.Column(db.Integer, default=60) 17 def save(self): # 类方法。对数据进行保存提交 18 db.session.add(self) 19 db.session.commit() 20 21 # 数据库初始化,新建一个数据库 22 @app.route("/init/") 23 def init(): 24 db.create_all() # 新建数据库 25 return "初始化成功" 26 # 新建一个学生表,在内加入学生信息 27 @app.route("/addstudent/") 28 def add_student(): 29 student = Student(name="小明%d" % random.randrange(10000), score=random.randrange(100)) 30 student.save() # 调用save()类方法,对要添加的数据进行添加提交 31 return "添加成功" 32 33 34 @app.route("/students/") 35 def students(): 36 # 获取成绩在 80分以上的学生信息 37 student_list = Student.query.filter(Student.score > 80).all() 38 student_list = Student.query.filter(Student.score.__gt__(80)).all() 39 40 # 获取成绩在 60分以下的学生信息 41 student_list = Student.query.filter(Student.score < 60).all() 42 student_list = Student.query.filter(Student.score.__lt__(60)).all() 43 44 # 获取成绩是 [60、81、100、200]列表内的学生信息 45 student_list = Student.query.filter(Student.score.in_([60, 81, 100, 200])).all() 46 47 # 获取成绩在 60分以上、80分一下的学生信息。 48 # filter之后对象类型是BaseQuery,可以链式调用:Student.query.filter(xxx).filter().filter().filter() 49 student_list = Student.query