当前位置:网站首页>Flask 上下文详解
Flask 上下文详解
2022-07-04 21:58:00 【Wu_Candy】
Step1:什么是上下文
上下文相当于一个容器,保存了 Flask 程序运行过程中的一些信息。Flask 中有两种上下文,请求上下文(request 和 session )和应用上下文(current_app和g)。
Step2:上下文的使用说明
- request:请求对象,封装了客户端发出的http请求中的内容
- session:用户会话,用于存储请求之间需要‘记住‘的值的词典
- current_app:当前激活程序的程序实例
- g:处理请求时用作临时存储的对象。每次请求会重设这个变量
Step3:上下文代码示例
from flask import request,Flask,current_app,session,g
from datetime import timedelta
import os
app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24)
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7) # 配置7天有效
#测试请求上下文request
@app.route('/request_context')
def request_context():
user_agent = request.headers.get("User-Agent")
# return "<p>Your browser is %s</p>" % user_agent
return f"<h1>Hello World!</h1>\nHello World!{user_agent}"
#测试应用上下文current_app
@app.route("/currentapp_context")
def currentapp_context():
return "hello %s" % current_app.name
# 设置session
@app.route('/set_session')
def set_session():
session['username'] = 'steven' # 设置“字典”键值对
session['password'] = '123456'
session.permanent = True # 设置session的有效时间,长期有效,一个月的时间有效,
return 'login success'
# 获取session
@app.route('/get_session')
def get_session():
# 第一种session获取如果不存在会报错
# session['username']
# 推荐使用session.get('username')
# session.get('username')
return session.get('password')
# 删除session
@app.route('/delete_session/')
def delete_session():
print(session.get('username'), session.pop('username', None))
# 或者 session['username'] = False
print(session.get('username'))
return "delete session is success"
#清除session中所有数据
@app.route('/clear_session')
def clear_session():
print(session.get('username'))
# 清除session中所有数据
session.clear
print(session.get('username'))
return 'clear session is success'
#定义了一个方法,用g来获取一个name的值
def test_g():
return g.get('name',"no name")
#测试应用上下文g
@app.route('/testG')
def test():
g.name = '张三'
test_g()
return test_g()
#定义了一个提交的form
@app.route('/testRequest')
def test1():
return '<form action="/getUser" method="get"> ' \
'<input type="text" name="username" value=""> ' \
'<input type="submit" value="提交"> ' \
'</form>'
#测试请求上下文request
@app.route('/getUser',methods=['GET'])
def getUser():
username=request.values.get('username')
return "my name is "+username
if __name__ == '__main__':
app.run(debug=True)
end
边栏推荐
- Xiangjiang Kunpeng joined the shengteng Wanli partnership program and continued to write a new chapter of cooperation with Huawei
- 283. Moving zero-c and language assisted array method
- PostgreSQL服务端编程聚合和分组
- 力扣_回文数
- Kdd2022 | what features are effective for interaction?
- PostgreSQLSQL高级技巧透视表
- BigFilter全局交易防重组件的介绍与应用
- 【愚公系列】2022年7月 Go教学课程 003-IDE的安装和基本使用
- 开户哪家券商比较好?网上开户安全吗
- php短视频源码,点赞时会有大拇指动画飘起
猜你喜欢
Play with grpc - go deep into concepts and principles
【米哈游2023届秋招】开启【校招唯一专属内推码EYTUC】
做BI开发,为什么一定要熟悉行业和企业业务?
玩转gRPC—深入概念与原理
Locust性能测试 —— 环境搭建及使用
并发优化总结
PMO:比较25种分子优化方法的样本效率
Zhiyang innovation signed a cooperation agreement with Huawei to jointly promote the sustainable development of shengteng AI industry
Deveco device tool 3.0 release brings five capability upgrades to make intelligent device development more efficient
Huawei Nova 10 series released Huawei application market to build a solid application security firewall
随机推荐
Huawei Nova 10 series released Huawei application market to build a solid application security firewall
AscendEX 上线 Walken (WLKN) - 一款卓越领先的“Walk-to-Earn”游戏
Interview question 01.01 Determine whether the character is unique
Radio and television Wuzhou signed a cooperation agreement with Huawei to jointly promote the sustainable development of shengteng AI industry
GTEST from ignorance to proficiency (4) how to write unit tests with GTEST
Energy momentum: how to achieve carbon neutralization in the power industry?
TCP协议三次握手过程
What is the stock account opening process? Is it safe to use flush mobile stock trading software?
ACM Multimedia 2022 | 视觉语言预训练模型中社会偏见的反事实衡量和消除
挖财学院股票开户安全吗?开户只能在挖财开户嘛?
The use of complex numbers in number theory and geometry - Cao Zexian
傳智教育|如何轉行互聯網高薪崗比特之一的軟件測試?(附軟件測試學習路線圖)
【愚公系列】2022年7月 Go教学课程 003-IDE的安装和基本使用
new IntersectionObserver 使用笔记
Kdd2022 | what features are effective for interaction?
Convolutional neural network model -- lenet network structure and code implementation
HDU - 1078 fatmouse and cheese (memory search DP)
283. Moving zero-c and language assisted array method
Which securities company is better to open an account? Is online account opening safe
删库不必跑路!详解 MySQL 数据恢复