Flask中的session,g
- flask中的session保存特定的用户信息,从而与request请求之间共享数据
- flask中的session基于cookies实现,同时也受制于cookies,一旦cookie失效,session也失效
- cookie存储在客户端,session信息存储在服务器端
- flask中的session与g的区别:
- session是可以跨request使用的,session的数据是经过加密之后存储在cookie里的,用户每次request都会把这些cookie信息发回来,从而实现跨request使用
- g面向单个request的,一个人request处理完,g里的东西就没有了
首先了解cookie机制:
- 网站中第一次与服务器连接并登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户
- cookie使得第二次请求时自动发送上次请求存储的cookie数据
- 缺陷:存储大小有限,不同的浏览器存储大小不同,具有默认有效期
Flask使用redis
- funtogether的项目实例使用redis数据库:
- config文件:session配置到redis数据库
- redis调用(此示例功能是返回次数,redis_store是本flask项目的redis对象):
- 解决疑惑:
什么是redis中的客户端:redis是服务端提供数据存储等服务,请求命令的就是客户端,通过客户端与redis服务端进行通讯并完成数据操作
Flask中基本的增删改查
- SQLAlchemy是python中最强大的orm框架
- 两个重要配置:
- app.config[‘SQLALCHEMY_ECHO’] = True ——>配置输出sql语句
- app.config[‘SQLALCHEMY_COMMIT_ON_TEARDOWN’] = True ——>每次request自动提交db.session.commit()
如果有一天你发现别的写的视图中有db.session.add,但没有db.session.commit,不要疑惑,他肯定配置了上面的选项。
- 操作:
- 首先先连接好数据库,然后对数据库进行增删查改——>配置信息
- 增删查改
- SQLAlchemy中Model.query与session.query的区别:
建议使用db.session.query()!!参考blog
- 打印检索语句不要加.all()或者.first()等类似方法,否则打印SQL语句失败