美文网首页
flask笔记(八):request中参数的使用(待更新)

flask笔记(八):request中参数的使用(待更新)

作者: warmsirius | 来源:发表于2019-08-28 07:50 被阅读0次

一、request获取请求参数

request参数,顾名思义就是请求参数,request对象中保存了一次HTTP请求的一切信息。

Django中,request是必须传入视图函数的参数;但是在flask中的视图,不需要传入request参数,那是因为flask采用了request全局变量。

request常用属性如下:

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

1. request.data

当flask遇到不能处理的mimetype时,请求的数据就不能被其它方式正常解析,这些方式包括

  • request.form
  • request.json
  • request.files
    这几个常用的用来访问数据的属性。这时就把数据作为字符串存在request.data中。

注意:request.json需要application/json的mimetype类型。

  • 例1:传入form表单数据,request.data为空的二进制字符串,解码后为空行
# 127.0.0.1:5000/index
@app.route("/index", methods=["GET", "POST"])
def index():
    # request中包含了前端发送过来的所有数据
    # form和data,查询请求体数据
    name = request.form.get("name", "zhangsan")
    age = request.form.get('age')

    print(request.data) # 二进制的数据
    print(request.data.decode('utf8')) # 需要解码成utf8
    return "hello name=%s, age=%s" % (name, age, city)

用postman测试,传入表单数据类型时header为application/x-www-form-urlencoded,传入name和age值

输出为

b''         # 二进制的空字符
             # 空行

2. request.form

如果minitype为:

  • application/x-www-form-urlencoded
  • multipart/form-data
    也就是我们所谓表单提交,访问request.form会返回一个包含解析过的的表单对象的 MultiDict,里面是k-v组成的元组的列表,而request.data是空的。

获取的结果使用

  • get
  • getlist
  • items
  • keys
  • to_dict
  • update
  • values
  • fromkeys

等合适方法去除要获取的值进行处理

  • 例2:传入表单数据,查看request.form
@app.route("/index", methods=["GET", "POST"])
def index():
   # request中包含了前端发送过来的所有数据
   # 通过request.form可以直接提取请求体中表单格式的数据,是一个类
   name = request.form.get("name", "zhangsan")
   age = request.form.get('age')
   print(request.form)
   return "hello name=%s, age=%s " % (name, age)

输出

ImmutableMultiDict([('name', '林璇'), ('age', '29')])

3. request.args

获取get请求参数

4. request.files

前端提交的文件,需要使用这个属性获取,暂时用的方法

  • get
  • getlist
  • items
  • keys

获取到的是一个文件对象。

5. request.url

相关文章

网友评论

      本文标题:flask笔记(八):request中参数的使用(待更新)

      本文链接:https://www.haomeiwen.com/subject/teuuectx.html