Flask之Request请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask之Request请求相关的知识,希望对你有一定的参考价值。

参考技术A 请求url: http://127.0.0.1:5000/hello?name=bob

flask为了将请求的URL匹配到对应视图函数,flask中存储了一个路由表(app.url_map)其中定义了URL规则和视图函数的映射。
如果找到了对应的视图函数,将展示。否则显示404。
可以通过flask routes来展示app.url_map表中解析到的数据

从这里我们可以看到每个路由或者说是接口对应的方法,参数等信息

在flask中,我们可以通过在@app.route()装饰器后设置http请求的方法,类似springboot中的requestMapping

如果请求的方法的方式和设置的不符合,将提示405(Method Not Allowed)

因为flask默认请求的URL为字符串,所以Flask内置了URL变量转换器

<int>限制了year必须是一个整数

<any>限定了必须在url上填入你选中的值

其实个人比较难理解什么是钩子,书上是认为请求的预处理和后处理被认为是一个钩子。

PS:after_request和after_this_request钩子必须接受一个响应对象作为参数,并且返回一个响应对象。

测开之路一百二十六:flask之获取request请求数据

 

 

可以根据flask的request对象获取所有的请求信息

path = request.path # 获取请求地址
method = request.method # 获取请求方法
ip = request.remote_addr # 请求来源的ip
form = request.form # 获取form表单的数据
value = request.values # 获取查询字符串/表单数据
headers = request.headers # 后区头部信息
User_Agent = request.headers[‘User-Agent‘] # 获取发起请求的浏览器的信息
host = request.headers[‘Host‘] # 主机
name = request.args.get(‘name‘, "没有获取到name") # 获取指定参数
environ = request.environ # 环境
full_path = request.full_path # 完整路径
url = request.url
base_url = request.base_url
url_root = request.url_root
si_xhr = request.is_xhr # 是否为XMLHTTPRequest请求
blueprint = request.blueprint # 当前的蓝图名
endpoint = request.endpoint # 根节点, 当前执行的函数
view_args = request.view_args # 视图参数
name = request.args.get(‘name‘, "没有获取到name") # 获取指定参数

 

 

技术图片

 

请求/rq/

技术图片

 

 

# coding:utf-8
from flask import Flask, request

app = Flask(__name__)


@app.route("/rq/")
def get_request():
""" request数据 """
path = request.path # 获取请求地址
method = request.method # 获取请求方法
ip = request.remote_addr # 请求来源的ip
form = request.form # 获取form表单的数据
value = request.values # 获取查询字符串/表单数据
headers = request.headers # 后区头部信息
User_Agent = request.headers[‘User-Agent‘] # 获取发起请求的浏览器的信息
host = request.headers[‘Host‘] # 主机
name = request.args.get(‘name‘, "没有获取到name") # 获取指定参数
environ = request.environ # 环境
full_path = request.full_path # 完整路径
url = request.url
base_url = request.base_url
url_root = request.url_root
si_xhr = request.is_xhr # 是否为XMLHTTPRequest请求
blueprint = request.blueprint # 当前的蓝图名
endpoint = request.endpoint # 根节点, 当前执行的函数
view_args = request.view_args # 视图参数
name = request.args.get(‘name‘, "没有获取到name") # 获取指定参数
return User_Agent # 解码


if __name__ == ‘__main__‘:
app.run(debug=True)

以上是关于Flask之Request请求的主要内容,如果未能解决你的问题,请参考以下文章

Flask之Request请求

Flask之请求钩子

flask之信号

Flask框架 之 信号

Flask之视图

flask之信号