flask框架的请求上下文request中的args获取请求参数方式

flask框架中提供有请求上下文request,其中有用于GET请求获取参数的args方法和用于POST请求获取参数的form方法。

关于浏览器的GET请求方式:浏览器的get请求方式会将参数以明文的方式放到请求地址栏中,如:http://127.0.0.1:5000/?name=hua  该请求中问好后面的name=hua即为参数 以键值对的形式,flask框架中的请求上下文request获取get方式的请求参数,即获取该键值对。

当浏览器以post方式请求时,若请求地址栏也有参数也可以通过request.args.get(键) 方式获取 

得出的结论为:args只获取地址栏中参数 ,不分get请求方式还是post请求方式.

以下为验证过程截图:

环境:虚拟环境,Python3 , pycharm,flask,ubuntu

1 、创建一个flask项目


2、代码如下

将flask自带的服务器配置为debug模式

from flask import Flask, jsonify
from flask import request

app = Flask(__name__)


@app.route('/', methods=['GET', 'POST'])
def hello_world():
    print('请求方式为------->', request.method)
    args = request.args.get("name") or "args没有参数"
    print('args参数是------->', args)
    form = request.form.get('name') or 'form 没有参数'
    print('form参数是------->', form)
    return jsonify(args=args, form=form)


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

3、模拟post请求和get请求

打开谷歌浏览器的postman插件

get请求时请求地址为:127.0.0.1:5000/?name=hua,服务器成功获取该参数并返回给浏览器:注:此时的form参数为None ,args的参数为hua(返回的数据为json数据通过jsonify()函数生成json数据)





post请求方式:请求的地址为127.0.0.1:5000/?name=hua 并将post请求方式的参数放到body里面 key=name,value=hua2 ,此时服务器将地址栏的参数获取到了,也将body中的参数获取到了并返回给浏览器(返回的数据为json数据通过jsonify()函数生成json数据)





执行结果

/home/python/.virtualenvs/py3_flask/bin/python /home/python/Pycharmproject/flask/验证request的args/验证request的args.py
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 191-517-513
请求方式为-------> GET
args参数是-------> hua
form参数是-------> form 没有参数
127.0.0.1 - - [31/May/2018 16:34:02] "GET /?name=hua HTTP/1.1" 200 -
请求方式为-------> POST
args参数是-------> hua
form参数是-------> hua2
127.0.0.1 - - [31/May/2018 16:34:39] "POST /?name=hua HTTP/1.1" 200 -

Process finished with exit code 0

完!

猜你喜欢

转载自blog.csdn.net/p571912102/article/details/80526634
今日推荐