实操Flask的session、redis与query查询操作扫盲

官方文档

关于python与web开发框架的好的回答er


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的session、redis与query查询操作扫盲

实操Flask的session、redis与query查询操作扫盲

实操Flask的session、redis与query查询操作扫盲
实操Flask的session、redis与query查询操作扫盲

Flask使用redis
  1. flask-session在redis中存储进行配置
  2. flask项目配置redis
  3. flask连接操作redis数据库
  4. 后台使用redis数据库
  • funtogether的项目实例使用redis数据库:
  1. config文件:session配置到redis数据库
  2. redis调用(此示例功能是返回次数,redis_store是本flask项目的redis对象):
  • redis_store.get(“access_num_%s” % user_ip) //redis中数据格式:access_nums_请求的ip:次数
  • get()函数、incr()函数、expire()函数等基本调用redis菜鸟教程
  • redis操作-与客户端通讯:(flask)python客户端:redis-py:实操方法实操blog2
  • flask-session的配置信息SESSION_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,不要疑惑,他肯定配置了上面的选项。

  • 操作:
  1. 首先先连接好数据库,然后对数据库进行增删查改——>配置信息
  2. 增删查改
  • SQLAlchemy中Model.query与session.query的区别:

建议使用db.session.query()!!参考blog

  • 打印检索语句不要加.all()或者.first()等类似方法,否则打印SQL语句失败