加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Flask 的 request 对象

发布时间:2023-06-29 14:18:54 所属栏目:教程 来源:
导读:浏览器访问服务端时,向服务端发送请求。Flask 程序使用 request 对象描述请求信息,本小节介绍 request 对象的概念,以及它的重要属性:form 和 args,并对属性的使用给出一个例子。

1. 简介
浏览器访问服务端,
浏览器访问服务端时,向服务端发送请求。Flask 程序使用 request 对象描述请求信息,本小节介绍 request 对象的概念,以及它的重要属性:form 和 args,并对属性的使用给出一个例子。

1. 简介
浏览器访问服务端,需要将相应的数据发送给服务端,可能有如下场景:

通过 URL 参数进行查询,浏览器需要将查询参数发送给服务端
提交表单 form 进行查询,浏览器需要将表单 form 中的字段发送给服务端
上传文件,浏览器需要将文件发送给服务端
服务端收到将客户端发送的数据后,封装形成一个请求对象,在 Flask 中,请求对象是一个模块变量 flask.request,它包含了如下常用属性:

属性    说明
method    当前的请求方法
form    表单参数及其值的字典对象
args    查询字符串的字典对象
values    包含所有数据的字典对象
json    如果 mimetype 是 application/json,这个参数将会解析 json 数据,如果不是则返回 None
headers    http 协议头部
cookies    cookie 名称和值的字典对象
files    与上传文件有关的数据
假设 URL 等于 http://localhost/query?userId=123,request 对象中与 URL 参数相关的属性如下:

属性    说明
url    http://localhost/query?userId=123
base_url    http://localhost/query
host    localhost
host_url    http://localhost/
path    /query
full_path    /query?userId=123

2. 获取 URL 相关参数
本节编写一个 Flask 程序 request-url.py,打印 request 中和 URL 相关的属性:

from flask import Flask
from flask import request
app = Flask(__name__)
def echo(key, value):
    print('%-10s = %s' % (key, value))
@app.route('/query')
def query():
    echo('url', request.url)
    echo('base_url', request.base_url)    
    echo('host', request.host)
    echo('host_url', request.host_url)
    echo('path', request.path)
    echo('full_path', request.full_path)
    return 'hello'
if __name__ == '__main__':
    app.run(port = )
在浏览器中输入 http://localhost/query?userId=123,程序在终端输出如下:

url        = http://localhost/query?userId=
base_url   = http://localhost/query
host       = localhost
host_url   = http://localhost/
path       = /query
full_path  = /query?userId=

3. 解析查询参数
request.args 保存了 URL 中的查询参数,下面编写一个例子 request-args.py 解析 URL 中的查询参数:

from flask import Flask, request
app = Flask(__name__)
@app.route('/query')
def query():
    print('name =', request.args['name'])
    print('age =', request.args['age'])
    return 'hello'
if __name__ == '__main__':
    app.run(debug = True)
在第 4 行,编写路径 /query 对应的处理函数 query(),打印查询参数 name 和 age 的值。在浏览器中输入 URL:http://localhost:5000/query?name=zhangsan&age=13 ,查询字符串为 name=zhangsan&age=13,包含有两个查询参数 name 和 age,Flask 程序在终端输出如下:

name = zhangsan
age = 
 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章