flask学习2

8.请求钩子

8.1 before_first_request

#再在第一次请求之前调用,可以做初始化操作
@app.before_first_request
def before_first_request():
    print('--------->before_first_request')

8.2 before_request

@app.before_request
def before_request():
    print('--------->before_request')
    
#在每一次请求之前调用,请求已经到来,可以再这个方法中做请求校验
#如果请求校验不通过,直接在当前方法中进行响应,直接return之后,不需要再进行视图函数的处理

8.3 after_request

@app.after_request
def after_request(response):
    print('---------->after_request')
    response.headers['Content-Tpye']='application/json'
    return response

没有异常的情况下,在执行完视图函数之后调用,会将视图函数所生成的响应传入,做相关的比如json添加头信息

8.4 teardown_request

@app.teardown_request
def tear_down(e):
    print('---------->teardown')
    
即使有异常,在每次请求后执行,接收的参数为异常信息

9.请求上下文参数

from flask import Flask,request
属性说明类型
data记录请求的数据,并转换为字符串*
form记录请求中的表单数据MultiDict
args记录请求中的查询参数MultiDict
cookies记录请求中的cookie信息Dict
headers记录请求中的报文头EnvironHeaders
method记录请求使用的HTTP方法GET/POST
url记录请求的URL地址string
files记录请求上传的文件*
query_string记录请求中的查询参数bytes

注意:

query_string 获取的参数是bytes类型,如果需要取出数据,需要进行下一步处理

args 获取的参数是类字典类型,直接用get获取

10.状态保持

10.1 cookie

from flask import Flask,make_response,request

10.1.1 设置cookie

@app.route('/index')
def index():
    response = make_response('index')
    response.set_cookie('username','xx',max_age=3600)
    return  response
max_age 为最大存在时间

10.1.2 查询cookie

@app.route('/cookies')
def get_cookie():
    return request.cookies.get('username','None')

10.1.3 删除cookie

@app.route('/deleting')
def del_cookie():
    response = make_response('delete cookie')
    response.delete_cookie('username')
    return response

10.2 session

from flask import Flask,make_response,session

10.2.1 设置密钥

class Config(object):
    SECRET_KEY='kasjbd'
app.config.from_object(Config)

10.2.2 设置session

@app.route('/index')
def index():
    session['username']='xxxx'
    response = make_response('index')
    return  response

10.2.3 查看session

@app.route('/session')
def get_session():
    return session.get('username')

11.应用上下文

from flask import Flask,current_app,g,make_response

app=Flask(__name__)

@app.route('/index')
def index():
    print(current_app)
    print(current_app.name)
    print(current_app.config)
    current_app.test = '这是测试数据'
    response = make_response('index')
    return  response

@app.route('/index123')
def index123():
    print('这是通过current_app传递的数据',current_app.test)
    response = make_response('index')
    return response
    
if __name__ == '__main__':
    app.run(debug=True)
    
#请求上下文request session:保存这客户端与服务器之问交互的数据
#应用上下文 current _app g flask程序在运行的过程中﹐保存的一些配置信息﹐程序名﹐数据库链接等

12.在命令行中启动flask

from flask import Flask
from flask_script import Manager

app=Flask(__name__)

manage =Manager(app)

if __name__ == '__main__':
    manage.run()
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页