flask框架2
文章目录
一. 状态保持
0. cookie细节
- 一旦保存了cookie数据,
访问该网站的任意路由时,cookie数据都会被发送
- 同源策略: cookie数据`只会发送给生成该cookie的网站
- cookie通过
js
也可以存取
1. Session实现 (重点)
- 特点:
。数据保存在服务端
(一般放在服务器的数据库中)
。session依赖cookie机制 - 场景:
。适合存放重要/敏感
的数据,安全性更高
。交互过程
– 登录流程
- 查看监听端口对应的PID
lsof -i:端口号
- sesstion实现
2.Session细节
base64.b64encode(os.urandom(40))
os.urandom(生成一个随机二进制数据),base64.b64编码二进制,配合使用可以对保存在client的cookie中的sid加密生成加密密码(app.secret_key = “test”)
- session设置过期时间
# 允许session设置过期时间 默认不允许 如果允许, 默认过期时间为31天
session.permanent = True
#设置session的过期时间
app.permanent_session_lifetime = timedelta(hours=1)
- session 删除数据
# 删除session数据 类似字典的操作 设置默认值后, 即使key不存在, 也不会报错
session.pop(“username”, None)
- flask中默认的session机制
默认
会将session数据加密后保存到cookie中,和传统的session存储机制(数据保存到服务器的数据库中)不同
二.高级处理
1.上下文
2.请求钩子
- before_request 和 after_request
- before_first_request 和 teardown_request
3.路由变量
3.1 绑定动态URL(重点)
3.2 正则转换器
- 导航区操作
参数和配置
1.Flask()参数
2.Flask应用配置
四.脚本启动
- 如何在服务器上运行 web应用
- 脚本启动组件
flask-script
可以生成启动web应用命令
,而这个命令可以通过选项的形式来配置ip和端口号
- 安装组件
pip install flask-script
- 启动web应用的命令
python xx.py runserver -h 0.0.0.0 -p 8000 -d
----runserver -? 可以看到需要操作命令,如 ([-?] [-h HOST] ,-d, --debug - pycharm使用脚本启动组件来运行程序
五.模块
1.使用jinja2进行模板渲染(重点)
- 设置模板文件夹
。# 模板渲染: 对html对进行内容替换
# flask中提供了jinja2框架来实现模板渲染 底层也是正则表达式
- 设置模板语言
。flask中自带了jinja2
- 使用jingjia2进行模板渲染
。写模板地址的时候会提示,如果没有提示,查看Mark directory 是否变为紫色