前言

get请求参数是在URL里面的,post请求参数是放在请求头里面的

get请求:

@index_page.route("/get")
def get():
    var_a = request.args.get("a", "jarvis")
    return "request:%s,params:%s,var_a:%s" %(request.method,request.args,var_a)

浏览器访问 http://127.0.0.1:5000/get

flask获取请求对象的get和post参数-LMLPHP


自定义参数值,浏览器访问 http://127.0.0.1:5000/get?a=123

flask获取请求对象的get和post参数-LMLPHP


post请求

@index_page.route("/post", methods=["POST"])
def post():
    var_a = request.form['a']
    return "request:%s,params:%s,var_a:%s" % (request.method, request.form, var_a)

postman测试

flask获取请求对象的get和post参数-LMLPHP

使用reques.values同时获取get和post请求的参数:

@index_page.route("/get")
def get():
    req = request.values
    var_a = req['a'] if "a" in req else ""
    return "request:%s,params:%s,var_a:%s" %(request.method,request.args,var_a)


@index_page.route("/post", methods=["POST"])
def post():
    req = request.values
    var_a = req['a'] if "a" in req else ""
    return "request:%s,params:%s,var_a:%s" % (request.method, request.form, var_a)

这样的好处就是不用在代码里面区分get和post请求是用args和form来获取

思考:如果一个post请求里面有有共同的参数,这个时候会打印出什么呢?

验证:
flask获取请求对象的get和post参数-LMLPHP
可以看到打印出了get请求的参数值,GET优先级高于POST

08-24 08:10