flask之session使用举例

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使用举例

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注