哪个网站可以做记录视频,乌兰察布seo,国内信息图制作网站有哪些,wordpress卖东西flask 自带session---》以cookie的形式放到了浏览器中---》加密
真正的session#xff0c;是在服务端存储 -django中存在djangosession表中 -flask中#xff0c;使用第三方#xff0c;保存在---》redis中---》flask-session
使用步骤
pip install flask-session …flask 自带session---》以cookie的形式放到了浏览器中---》加密
真正的session是在服务端存储 -django中存在djangosession表中 -flask中使用第三方保存在---》redis中---》flask-session
使用步骤
pip install flask-session
高版本的flask出现一个问题 用高版本在app中放一个参数 app.session_cookie_namesession
使用方式一
from flask_session import RedisSessionInterfaceapp.session_cookie_namesessionapp.session_interfaceRedisSessionInterface(redisNone,key_prefixlqz) # 动态替换把原来的session对象换成放到redis的session对象# 4 以后再使用session就会存到redis中了session.get()session[]value赋值
使用方式二
from redis import Redisfrom flask_session import Sessionapp.session_cookie_name sessionapp.config[SESSION_TYPE] redisapp.config[SESSION_REDIS] Redis(host127.0.0.1,port6379)Session(app) flask-session的请求流程 数据库连接池
全局建立连接如果来两个请求去数据库中查询数据可能会造成数据错乱所以需要在每个视图函数中单独建立连接但是又会造成数据库连接数量过多导致数据库效率变低所以我们引入连接池。 1.安装模块
pip install DBUtils
2.使用 类创建一个池对象-------另起一个py文件
PYMYSQL_POOL PooledDB(creatorpymysql, # 使用链接数据库的模块maxconnections2, # 连接池允许的最大连接数0和None表示不限制连接数mincached1, # 初始化时链接池中至少创建的空闲的链接0表示不创建maxcached0, # 链接池中最多闲置的链接0和None不限制maxshared3,# 链接池中最多共享的链接数量0和None表示全部共享。PS: 无用因为pymysql和MySQLdb等模块的 threadsafety都为1所有值无论设置为多少_maxcached永远为0所以永远是所有链接都共享。blockingTrue, # 连接池中如果没有可用连接后是否阻塞等待。True等待False不等待然后报错maxusageNone, # 一个链接最多被重复使用的次数None表示无限制setsession[], # 开始会话前执行的命令列表。如[set datestyle to ..., set time zone ...]ping0,# ping MySQL服务端检查是否服务可用。# 如0 None never, 1 default whenever it is requested, 2 when a cursor is created, 4 when a query is executed, 7 alwayshost127.0.0.1,port3306,userroot,password123,databasecars,charsetutf8
)
3 从池对象中取出一个链接使用
conn PYMYSQL_POOL.connection()
4 flask中使用
app.route(/)
def index():conn PYMYSQL_POOL.connection() # 从池中拿一个链接cursor conn.cursor(cursorDictCursor) # 默认元组套元组设置DictCursor就是列表套字典cursor.execute(select id,title from news where id10)res1 cursor.fetchall()cursor.close()conn.close()return jsonify(res1)