Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块

Flask中上下文,分为请求上下文和应用上下文。既状态留存 ,就是把变量存在某一个地方可以调用

请求上下文:实际就是request和session用法理念,既都是可以存储东西。

应用上下文:既变量共享,就是把东西存储在变量里可以打印预览,应用上下文包括

current_app模块和g模块
 
 
cookie方法增,查,删。
注:存储cookie时使用set_coooki方法存储key--calve形式数据,另一个参数max_age
  是指定的存活时间。
  
  调用cookie的方法是通过request模块的cookies属性的get方法,指定key来调用value
 
  删除cookie通过make_response对象内置的delete_cookie方法来指定key 来删除value
 
具体代码如下:
Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块
# -*- encoding: utf-8 -*-
# cooki相关操作依赖于make_respinse库
from flask import Flask, make_response, request

# 建立对象
app = Flask(__name__)
# 从配置文件导入配置
app.config.from_pyfile(config.ini)


@app.route(/)
def index():
    return 这里是首页

# 存cooki方法
@app.route(/setcookie)
def set_cookie():
    resp = make_response(存储cookie)
    # 使用set_coooki方法存储key--calve形式数据,另一个参数是指定的存活时间
    resp.set_cookie("productname", [卫生纸,花生,男神鹏], max_age=3600)
    return resp


# 调用cooki
@app.route(/getcookie)
def get_cookie():
    # 通过request模块的cookies属性的get方法,指定key来调用value
    resp = request.cookies.get(productname)
    return resp


# 删除cookie的方法
@app.route(/delcookie)
def del_cookie():
    # 通过make_response对象内置的delete_cookie方法来指定key 来删除value
    resp = make_response(删除cookie)
    resp.delete_cookie(productname)
    return resp


if __name__ == "__main__":
    app.run(debug=True)
View Code

session方法增,查,删。

注:在存储sesson时按字典键值对形式直接使用session对存储的内容赋值。如:session[‘username‘] = ‘你好‘

  查询时也一样遵循字典查询方式 如:se = session[‘username‘]   然后 return se

  删除时通过session的pop方法来删除指定的key来删除value 既:session.pop(‘username‘)

具体代码如下:

Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块
# -*- encoding: utf-8 -*-
# session 是依赖于flask的session模块
# 如果想使用sessio模块,在配置里一定要配置session的key
from flask import Flask,session

# 建立对象
app = Flask(__name__)
# 从配置文件加载配置
app.config.from_pyfile(config.ini)


@app.route(/)
def index():
    return 我是首页.session

# 存储session的方法


@app.route(/set_session)
def set_session():
    # 直接使用session对存储的内容赋值
    session[username] = 你好
    return 存储session成功

# 调用session的方法
@app.route(/get_session)
def get_session():
    # 通过esssion直接内容调用
    se = session[username]
    return se

# 删除session的方法
@app.route(/del_session)
def del_session():
    # 通过session的pop方法来删除指定的key来删除value
    session.pop(username)
    return 删除成功


if __name__ == "__main__":
    app.run()
View Code

request属性是Flask框架中请求上下文重要模块之一:我们可以通过requset包含的属性来查询访问者信息在后台打印。

具体代码如下:

Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块
# -*- encoding: utf-8 -*-
from flask import Flask, request

app = Flask(__name__)
app.config.from_pyfile(config.ini)

@app.route(/, methods=[get, post])
def index():
    #  打印请求头信息
    print(request.headers)

    # 打印请求方式
    print(request.method)

    # 打印请求的url地址
    print(request.url)

    # 打印所有cookie信息
    print(request.cookies)

    # 打印网址参数信息
    print(request.args.get(id))

    # dict是查询某对象里边所有属性
    print(request.__dict__)
    
    return 你好


if __name__ == "__main__":
    app.run(debug=True)
View Code

current_app模块和g模块在这里只做简单介绍:既current_app模块用来存储当前应用的具体配置信息,g既global用来存储公共变量 以下代码做了个工具函数,方便查看

Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块

Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块

注:使用工具类要导包  from 文件名 import 方法名

具体代码为:

Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块
# -*- encoding: utf-8 -*-
from flask import Flask, current_app, g
# 从自定义的工具类文件内部引入check_username方法
from utils import check_uesrname

# 创建对象
app = Flask(__name__)

# 载入配置文件
app.config.from_pyfile(config.ini)


@app.route(/)
def index():
    # current_app模块用来存储当前应用的具体配置信息
    print(打印名字:%s % current_app.name)
    print(打印详细信息:%s % current_app.__dict__)
    # 打印全局对象g里面自定义的属性username
    check_uesrname()

    return 李云鹏是积云酒蒙子


if __name__ == "__main__":
    app.run()
View Code
Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块
# -*- encoding: utf-8 -*-
from flask import Flask,g

def check_uesrname():
    g.username = 李云鹏是积云酒蒙子
    print(g.username)
View Code

 

Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块

上一篇:02djangoMVC模型


下一篇:[小米OJ] 9. 移除 K 位得到最小值