Flask 获取请求参数和请求钩子

1、Flask Request 请求参数获取:
首先,参数可以放到url中,可以放在head中,可以放在body中
①请求参数包括url路径参数、其他参数(包括:

data  # body中的原始数据
form  # body中的form表单数据
args  # 查询参数跟在url中的?号后面
cookies  # cookies内容
headers  # head内容,字典形式的
method  # 请求方式
url   # 路径信息,包括请求路径及参数
files  # body中上传的文件 
等)、session 

②url路径参数通过转换器来进行正则获取,其他参数通过请求上下文request.来获取(包括data form args cookies headers method url files等)和 session.get('key_name')来获取

2、

json.dumps()与jsonify()的区别:
json_dict={
"u_id"=23523,
"u_name"="uu"
}
jsonify(json_dict)
# `jsonify函数将字典数据转换为json格式,并设置head响应头:Content-Type:application/json`

json.dumps() 仅仅是转换为json格式
json.loads() 将json格式转换为字典

3、构造response返回数据两种方式:
1、元组方式
return “内容(body)”, 状态码, 响应头(head)
eg: return "ok", 200, {"content-length":30} # 这种方式实际上是flask自动构造了response对象,然后再返回的
2、make_response方式

resp = make_response("body content")2
resp.headers["content-length"] = 30
resp.status = "404 not found"  # 这里必须传完整的响应码,包括数字和文字说明
return resp

4、带查询参数的路由

#  /aa?channel_id=2323

@app.route("/aa")
def aa():
    c_id = request.args.get("channel_id")
    return  "channel id is {}".format(c_id)

通过 /aa?channel_id=2323进行访问,仍然可以访问到aa视图。

5、请求钩子
请求执行顺序:

请求→
before_first_request(首次请求时执行一次,后面的请求不再执行)→
before_request→
view函数→
after_request→
`teardown_reques`t

用4个装饰器实现钩子函数

@app.before_first_request  # 首次请求时调用装饰的钩子函数
@app.before_request  # 每次请求时调用,但如果钩子函数返回了,则不会调用视图函数
@app.after_request  # 如果视图函数没有报异常情况下每次视图函数执行后执行,钩子函数需要接收参数,实参是视图函数的返回值,最后通过这个函数返回给客户端!
@app.teardown_request  # 每次请求后最后一次调用的钩子函数,接收一个参数:服务器出现的错误信息,如果有错误则抛出。每次都会执行,负责抛出错误!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值