flask框架session的使用
#! /usr/bin/python3
# -*- coding:utf-8 -*-
# file: lflask.py
# author: wangchenxi
# mail: wongchenxi@icloud.com
# brief:
# version: 0.1.00
# Create Time:2019-12-23 00:45:20
# Last Update: 2019-12-23 19时46分04秒
from flask import Flask, render_template, request
from flask import session
app = Flask(__name__) # 配置传参后续章节再说明
app.debug = True # 自动重启 透传错误信息 Log级别较低 Debug 级别
app.config["DEBUG"] = True
app.config["SECRET_KEY"] = "%^(&^%&(*^%&*^&Y"
app.config["PERMANENT_SESSION_LIFETIME"] = 30
app.config["SESSION_COOKIE_NAME"] = "I am Not Session"
app.config["JSONIFY_MIMETYPE"] = "alex/DSB" # jsonify Content-Type中的值
@app.route(
"/response",
methods=["get", "PoSt"],
endpoint="my_response",
strict_slashes=True)
# 默认Get 请求方式,配置传参后续章节再说明
def my_response():
session["user"] = "Alexander.DSB.Li"
return render_template("login1.html")
# 项目默认配置的模板目录是templates
@app.route(
"/request1",
methods=["get", "PoSt"],
endpoint="my_test1",
strict_slashes=True)
# 默认Get 请求方式,配置传参后续章节再说明
def my_response6():
print(request.args.get("id"))
# 获取 URL 中的请求参数/request1?id=1 字典
print(request.args.to_dict())
# 将获取的数据转化为字典
print(request.form.get("u"))
# FormData中的数据 POST 请求提交 form == args
print(request.form.to_dict())
print(request.json)
print(request.data)
d = {
'request.method': request.method,
'request.url': request.url,
'request.path': request.path,
'request.host': request.host,
'request.host_url': request.host_url,
'session["user"]': session['user']
}
return d
'''以下是响应内容
{
"request.host":"127.0.0.1:5000",
"request.host_url":"http://127.0.0.1:5000/",
"request.method":"POST",
"request.path":"/request1",
"request.url":"http://127.0.0.1:5000/request1",
"session[\"user\"]":"Alexander.DSB.Li"
}
'''
if __name__ == '__main__':
app.run('0.0.0.0', 5000)
基于redis和flask-session的session相关
Flask-session
三方组件:pip install flask-session
app.config最终在 app.default_config中
settings.py中的DebugConfig中,不是大写英文的一律丢弃不管
使用pickle作为序列化器
from flask import Flask, request, session
from flask_session import Session
app = Flask(__name__)
# app.secret_key = '%^&*JBHJ%$*lkdsj'
# 使用 flask_session并使用 redis 存储session
app.config['SESSION_TYPE'] = 'redis'
app.config['SESSION_REDIS'] = Redis('127.0.0.1', 6379, db=10)
Session(app)
@app.route('/sets')
def sets():
session['key'] = 'henry'
return 'set ok!'
@app.route('/gets')
def gets():
return session.get('key')
if __name__ == '__main__':
app.run()
版权声明:除特别注明外,本站所有文章均为王晨曦个人站点原创
转载请注明:出处来自王晨曦个人站点 » flask之session使用举例