界首网站建设,南宁网页设计,新莱芜客户端,千博网站管理系统安装增:
# 1. 找到模型类并创建对象
user User()
# 2. 给对象的属性赋值
user.username username
user.password password
user.phone phone
# 3. 将user对象添加到session中 (类似缓存)
db.session.add(user)
# 4. 提交数据
db.session.commit()
删:
# 两种删除:# 1. 逻辑删…增:
# 1. 找到模型类并创建对象
user User()
# 2. 给对象的属性赋值
user.username username
user.password password
user.phone phone
# 3. 将user对象添加到session中 (类似缓存)
db.session.add(user)
# 4. 提交数据
db.session.commit()
删:
# 两种删除:# 1. 逻辑删除(定义数据库中的表的时候,添加一个字段isdelete,通过此字段控制是否删除)id request.args.get(id)# 获取该id的用户userUser.query.get(id)# 逻辑删除:user.isdelete True# 提交db.session.commit()# 2. 物理删除(彻底从数据库删除)id request.args.get(id)user User.query.get(id)# 将对象放到缓存准备删除db.session.delete(user)# 提交删除db.session.commit()
改:
id request.form.get(id)
# 找用户
user User.query.get(id)
# 改用户信息
user.phone phone
user.username username
# 提交
db.session.commit()
查:
# 1. 查询所有
模型类.query.all() # select * from user;# 2. filter_by()查询
模型类.query.filter_by() # 里面是一个等值 模型类.query.filter_by(字段名 值)
模型类.query.filter_by(字段名值).all #返回一个列表 select * from user where 字段名值;
模型类.query.filter_by(字段名值).first #返回一个对象, select * from user where 字段名值 limit(1);# 3.filter()查询模型类.query.filter() # 里面是布尔的条件 模型类.query.filter(模型名.字段名 值)(1). filter可以加筛选条件User.query.filter(User.username.startswith(c)).all() # 以...开头User.query.filter(User.username.endswith(o)).all() # 以...结尾User.query.filter(User.username.contains(c)).all() # 包含User.query.filter(User.username.like(%2%)).all() # 模糊查询,需要加%(2). 多条件查询: 与: and_ ; 或: or_ ; 非: not_ ; 在...里 in_# __gt__, __lt__,__ge__(gt equal),__le__(le equal)# 通常应用在范围(整形,日期);也可直接使用 !from sqlalchemy import or_, and_,not_in_ # or# select * from user where username like 1% or username like %c%;User.query.filter(or_(User.username.like(1%), User.username.contains(c))).all()# and# select * from user where username like %c% and radtetime xxxUser.query.filter(and_(User.username.contains(c), User.radtetime.__gt__(2023-05-19 17:00:15))).all()# 取反User.query.filter(not_(User.username.contains(c) )).all()# inUser.query.filter(User.phone.in_([13800000000,17700000000])).all()# 4. 排序: order_by # 对所有的进行排序User.query.order_by(-User.id).all() # 先筛选后排序User.query.filter(User.username.contains(o)).order_by(-User.radtetime).all()# 5. 限制: limit offset:偏移User.query.limit(2).all() # 默认获取前2条User.query.offset(2).limit(2).all() # 跳过两条记录在获取两条# 6. 总结(1). User.query.all() # 所有(2). User.query.get(pk) # 通过主键查询一个(3). User.query.filter() *# 如果要检索的字段是字符串类型(varchar,db。String):User.username.startswith()User.username.endswith()User.username.contains()User.username.like()User.username.in_([,])User.usernamezzz# 如果要检索的字段是整形或者日期类型User.age.__lt__(18)User.redatetime.__gt__(......)User.age.__le__(18) # User.age.__ge__(18) # User.age.between(15,30) # 区间范围(4). 多个条件一起检索 and_or_,not_(5). 排序: order_by()(6). 获取指定数量: limit() offset()案例: 注册 登录
前置准备: 搭建蓝图 1. 创建模型数据库 (1). apps / user /models.py 创建模型类 (2). app.py 引入模型类 (3). 终端执行,生成模型 2. 首页展示 (1). apps / user / view.py 编写视图函数 (2). templates / user / conter.html 编写首页视图 3. 用户注册 (1). apps / user / view.py 编写视图函数 (2). templates / user / conter.html 预留注册跳转功能 (3). templates / user / register.html 编写注册页面 4. 用户登录 (1). apps / user / view.py 编写视图函数 (2). templates / user / conter.html 预留登录跳转功能 (3). templates / user / login.html 编写登录页面 5. 首页检索搜索 (1). apps / user / view.py 编写视图函数 (2). templates / user / conter.html 编写搜索功能 (3). templates / user / conter.html 编写js实现搜索 6. 用户删除 (1). apps / user / view.py 编写视图函数 (2). templates / user / conter.html 首页循环渲染数据时获取用户id 7. 用户更新 (1). apps / user / view.py 编写视图函数 (2). templates / user / conter.html 首页循环渲染数据时获取用户id,点击跳转到修改页面 (3). templates / user / update.html 编写修改页面