• flask中获取request的参数的方法


    request请求总体分为两类:

    1.get请求 

    访问时会在地址栏直接显示参数不安全,且参数大小比较小。

    2.post请求 

    参数不显示在地址栏,一般用户注册、登录都通过post请求完成。

    flask获取参数方式:

    request.form.get("key", type=str, default=None) 获取表单数据

    request.args.get("key") 获取get请求参数

    request.values.get("key") 获取所有参数

    本文主要介绍以上三种方式,其次也有获取解析json数据格式,request.get_json(),这里不进行详细介绍了。

    下面直接开始试验,以用户注册为例:

    需要获取四个参数:用户手机号、密码、校验密码、手机验证码

    mobile = request.form.get("mobile")

    password = request.form.get("password",type=str,default=None)

    password_repeat = request.form.get("password_repeat",type=str,default=None)

    mobile_code = request.form.get("mobile_code",type=str,default=None)

    整体代码截图

    分别通过3中方式获取参数:request.form, request.args,request.values

    postForm= request.form

    getArgs= request.args

    postValues= request.values

    试验:

    试验1::Get请求:将参数直接拼接在url上,以下均以postman, pycharm调试窗截图说明。

    url:http://127.0.0.1:5000/register?mobile=18817366807&password=123456&password_repeat=123456&mobile_code=111111

    postman get 发送请求配置1
    pycharm debuger 窗口变量截图1

          在get请求下,request.form无法获取参数,其他两者都可以。

    试验2:通过postman将get请求改为post请求

    postman post发送请求配置2
    pycharm debuger 窗口变量截图2

            在post请求下,request.form无法获取有效参数,其他两者都可以,当然content-type/form-data 发生改变,当然这里可也简单理解为该请求为伪post请求。

    试验3:post请求,在body内创建form-data参数成员

    POST /register?mobile=18817366807&password=123456&password_repeat=123456&mobile_code=111111 HTTP/1.1

    Host: 127.0.0.1:5000

    Cache-Control: no-cache

    Postman-Token: 31fff394-653b-ac72-6011-313518d4c2eb

    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

    ------WebKitFormBoundary7MA4YWxkTrZu0gW

    Content-Disposition: form-data; name="formmember"

    form

    ------WebKitFormBoundary7MA4YWxkTrZu0gW--

    postman post发送请求配置3
    pycharm debuger 窗口变量截图3

            三者全部获得参数值,最让人困惑的是postForm获得了mobile等值。此外需要注意的是postValues中含有全部的参数。

    试验4:post请求,删除get部分参数

    postman post发送请求配置4
    pycharm debuger 窗口变量截图4

           这次的结果倒是符合预期,postForm获得form表单数据,postValues也能获取到。

    试验5:补充实验

    postman post发送请求配置5
    pycharm debuger 窗口变量截图5

    综上,可以得出结论,request.form.get("key", type=str, default=None) 获取表单数据,request.args.get("key") 获取get请求参数,request.values.get("key") 获取所有参数。推荐使用request.values.get().



    作者:码农的happy_life
    链接:https://www.jianshu.com/p/ecd97b1c21c1
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    【DWT笔记】基于小波变换的降噪技术
    【DWT笔记】傅里叶变换与小波变换
    Matlab命令——目录操作(windows&Linux)
    【DCT笔记】DCT变换、DCT反变换、分块DCT变换
    JSOI2018 防御网络
    NOI2018 屠龙勇士
    CRT&EXCRT学习笔记
    CF662C Binary Table
    HNOI2017 礼物
    ZJOI2014 力
  • 原文地址:https://www.cnblogs.com/chaojiyingxiong/p/10283877.html
Copyright © 2020-2023  润新知