数据库的操作
1.增加(略)
2.查询
1.基于db.session(略)
2.基于Models进行查询
Models.query.查询过滤器函数(条件参数).查询执行函数()
3.删除
1.查询出要删除的实体对象
u=db.session.query(Models).filter_by(xxx).first()
2.根据提供的 删除方法进行删除
db.session.delete(u)
注意:
真正的删除并不是通过删除操作完成,而是通过修改完成的
4.修改
1.查
将 要修改的信息查询出来
2.改
实体对象.属性 = 值
3.保存
db.session.add(实体对象)
关系映射
1.一对多
语法:
1.在 "多" 的实体中
增加一个列,引用自"一"表的主键列
外键列名 = db.Column(db.Integer,db.ForeignKey('主表.主键'))
2.在 "一" 的实体中
增加关联属性以及反向引用关系
ex:
关联属性:
在 course 对象中,通过一个属性能够得到对应的所有的teacher们
关联属性,是应该加在 Course 的实体类中
反向引用:
在 teacher 对象中,通过一个属性能够得到对应的course
反向引用关系属性,是应该加在 Teacher 的实体类中
增加关联属性和反向引用关系:
属性名=db.relationship('多表实体类名',关系选项)
关系选项:
选项名 说明
backref 在关系的另一个模型中添加的反向引用属性名
(准备在"多"的实体中增加对"一"的实体引用的属性名)
lazy 指定如何加载当前的相关记录
select:首次访问时加载记录
immediate:源对象加载后马上加载相关记录
subquery:效果同上,利用子查询方式加载记录
noload:永不加载记录
dynamic:默认不加载记录,但会提供加载记录的查询
uselist 如果设置为False,表示不使用列表表示关联数据,而使用标量
secondary 指定多对多关系映射中的关联表的名字
2.一对一
1.什么是一对一
A表中的一条记录只能与B表中的一条记录相关联
B表中的一条记录只能与A表中的一条记录相关联
2.在SQLAlchemy中的体现
1.在任意一个类中增加
外键列名 = db.Column(db.Integer,db.ForeignKey('主键表.主键列'))
2.在另外一个类中增加
关联属性 和 反向引用关系属性
属性=db.relationship('关联的实体类',backref='反向引用属性名',uselist=False)
3.多对多
1.什么是多对多
A表中的一条数据可以与B表中任意多条数据相关联
B表中的一条数据可以与A表中任意多条数据相关联
2.实现
在数据库中使用第三张表(关联表)
在编程语言中,可以不编写对应的实体类
1.创建第三张表
student_course = db.Table(
'student_course',#在数据库中表名
db.Column('id',db.Integer,primary_key=True),
db.Column(
'student_id',
db.Integer,
db.ForeignKey('student.id')),
db.Column(
'course_id',
db.Integer,
db.ForeignKey('course.id'))
)
cookies / cookie
1.什么是cookies
cookie 是一种数据存储手段
将一段文本保存在客户端(浏览器)的一种手段,并可以长时间保存
2.cookies的使用场合
1.记住密码
2.记住搜索关键词
3.Flask 中使用 cookies
1.使用响应对象,将数据保存进cookies(客户端)
1.resp = make_response("字符串"|render_template())
2.resp = redirect('地址')
cookies 的语法
响应对象.set_cookie(key,value,max_age)
key:保存的cookie的名称
value:保存的cookie的值
max_age:保存的时间,取值为数字,默认以 s 为单位
60 :一分钟
60 * 60 :一小时
60 * 60 * 24 :一天
60 * 60 *24 * 365 :一年
2.获取 cookie 的值
每次向服务器发送请求时,都会把cookie中的数据封装到request中并带到服务器上
在flask中通过 request.cookies 获取所有的cookies值
3.删除cookie的值
响应对象.delete_cookie('key')
session - 会话
1.什么是session
session是保存在服务器上,为每个浏览器所开辟的一段空间
2.session 在 Flask 中的实现
1.配置 SECRET_KEY
app.config['SECRET_KEY']="xiangxieshaxiesha"
2.使用session
from flask import session
1.向session中保存数据
session['key']=value
2.从session中取值
value = session['key']
value = session.get('key','')
3.从session中删除数据
del session['key']
想要看更多的课程请微信关注SkrEric的编程课堂