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
完!