当前位置:网站首页>Day3 ---Flask 状态保持,异常处理与请求钩子
Day3 ---Flask 状态保持,异常处理与请求钩子
2022-07-27 05:02:00 【qishaoawei】
状态保持
cookie实现方式
生成cookie
from flask import Flask,make_response,request
from bak.testing.settings.config import DefaultConfig #第二种
app=Flask(__name__)
# 设置SECRET_KEY配置信息, 必须设置, 否则抛异常 两种方式
# app.config['SECRET_KEY'] = '[email protected]#[email protected]#sdkjf0934FHJNJGI' #第一种
app.config.from_object(DefaultConfig) #第二种
#生成cookie
@app.route('/set_cookie')
def set_cookie():
resp=make_response('设置cookie')
#name为建 zhangsan为值 #max_age=60设置60秒有效期
resp.set_cookie('name','zhangsan',max_age=60)
return resp
第二种方式创建文件夹在文件夹里创建py文件设置配置信息
获取打印出保存的cookie
from flask import Flask,make_response,request
from bak.testing.settings.config import DefaultConfig
app=Flask(__name__)
app.config.from_object(DefaultConfig)
#获取cookie
@app.route('/get_cookie')
def get_cookie():
name=request.cookies.get('name')
resp=make_response('获取cookie')
print(name)
return resp
删除已保存的cookie
from flask import Flask,make_response,request
from bak.testing.settings.config import DefaultConfig
app=Flask(__name__)
app.config.from_object(DefaultConfig)
#删除cookie
@app.route('/del_cookie')
def del_cookie():
resp=make_response('删除cookie')
resp.delete_cookie('name')
return resp
session实现方式
生成session
from flask import Flask,make_response,request,session
from bak.testing.settings.config import DefaultConfig #第二种
app=Flask(__name__)
# 设置SECRET_KEY配置信息, 必须设置, 否则抛异常 两种方式
# app.config['SECRET_KEY'] = '[email protected]#[email protected]#sdkjf0934FHJNJGI' #第一种
app.config.from_object(DefaultConfig) #第二种
#生成session
@app.route('/set_session')
def set_session():
session['password']='123456'
return 'session设置成功'
查看获取session
from flask import Flask,make_response,request,session
from bak.testing.settings.config import DefaultConfig
app=Flask(__name__)
app.config.from_object(DefaultConfig)
#查看获取session
@app.route('/get_session')
def get_session():
pwd=session.get('password')
return pwd
删除session
from flask import Flask,make_response,request,session
from bak.testing.settings.config import DefaultConfig
app=Flask(__name__)
app.config.from_object(DefaultConfig)
#删除session
@app.route('/del_session')
def del_session():
resp=make_response('删除session')
resp.delete_cookie('session')
return resp
登录功能实现 保存session
from flask import Flask,make_response,request,session
from bak.testing.settings.config import DefaultConfig
app=Flask(__name__)
app.config.from_object(DefaultConfig)
#登录实现 保存session
@app.route('/login')
def login():
#获取用户名和密码
username=request.args.get('username')
password=request.args.get('password')
#验证用户名和密码
real_username='zhangsan'
real_password='123456'
if username!=real_username:
return '用户名错误'
if password!=real_password:
return '密码错误'
session['name']=username
return '登录成功'
#查看登录账户名
@app.route('/home')
def home():
username=session.get('name')
return username
#退出登录
@app.route('/logout')
def logout():
resp=make_response('退出成功')
resp.delete_cookie('session')
return resp
登录成功
异常处理
# abort()抛出异常配合自定义异常信息示例
from flask import Flask
# 导入abort
from flask import abort
@app.route('/error')
def error():
#可以使用try条件
#主动抛出异常 自定义状态码
abort(500)
@app.errorhandler(500)
def get_error(e):
return '出错了'
请求钩子
@app.route('/page')
def page():
print('页面执行了')
return '页面执行了'
@app.before_first_request
def first():
print('页面请求前执行,只执行一次')
@app.before_request
def before():
print('每次页面处理请求前,都执行')
@app.after_request
#注意 res必须返回 否则报错无法生成cookie
def after(res):
print('页面处理请求结束后执行,报错可能会不执行')
return res
@app.teardown_request
def tr(e):
print(e)
print('页面处理请求结束后执行,报错也会执行')
边栏推荐
- Alphabetic order problem
- Derivation and explanation of PBR physical illumination calculation formula
- The receiver sets the concurrency and current limit
- 枚举类实现单例模式
- Flask对模型类的操作
- MQ set expiration time, priority, dead letter queue, delay queue
- Student management system
- Gradio quickly builds ml/dl Web Services
- Mysql速成
- 整合SSM
猜你喜欢
随机推荐
LeetCode刷题之322 Coin Change
6 zigzag conversion of leetcode
numpy 数据类型转化
李宏毅机器学习组队学习打卡活动day03---误差和梯度下降
Three waiting methods of selenium and three processing methods of alert pop-up
LocalDateTime和ZonedDateTime
conda和pip环境常用命令
注册功能实现
B1026 program running time
mq设置过期时间、优先级、死信队列、延迟队列
辗转相除法
Enumeration class implements singleton mode
B1027 print hourglass
The concept of cloud native application and 15 characteristics of cloud native application
Graph cuts learning
数据库设计——关系数据理论(超详细)
MQ set expiration time, priority, dead letter queue, delay queue
B1021 个位数统计
2022 Zhengzhou light industry Freshmen's competition topic - I won't say if I'm killed
LeetCode之6 ZigZag Conversion









