[python][flask]flask接受get或者post参数

发布于:2025-07-26 ⋅ 阅读:(15) ⋅ 点赞:(0)

在 Flask 中,可以通过 request 对象来获取客户端通过 GET 或 POST 方法发送的参数。以下是如何在 Flask 中接收 GET 和 POST 参数的详细说明:

1. 接收 GET 参数

GET 请求的参数通常通过 URL 的查询字符串传递。例如,对于 URL http://example.com/?name=Kimi&age=25,可以通过 request.args 获取这些参数。

from flask import Flask, request

app = Flask(__name__)

@app.route('/get_example')
def get_example():
    # 获取 GET 参数
    name = request.args.get('name', default='Guest')  # 默认值为 'Guest'
    age = request.args.get('age', default=0, type=int)  # 默认值为 0,且转换为整数
    return f"Hello, {name}! Your age is {age}."

if __name__ == '__main__':
    app.run(debug=True)
  • request.args 是一个类似字典的对象,可以通过 .get() 方法获取参数值。

  • 如果参数不存在,可以通过 default 参数指定默认值。

  • 可以通过 type 参数指定参数的类型(如 intfloat 等)。

2. 接收 POST 参数

POST 请求的参数可以通过表单数据或 JSON 数据传递。

接收表单数据

如果客户端通过表单发送数据(Content-Type: application/x-www-form-urlencodedmultipart/form-data),可以通过 request.form 获取参数。

from flask import Flask, request

app = Flask(__name__)

@app.route('/post_example', methods=['POST'])
def post_example():
    # 获取 POST 表单参数
    name = request.form.get('name', default='Guest')  # 默认值为 'Guest'
    age = request.form.get('age', default=0, type=int)  # 默认值为 0,且转换为整数
    return f"Hello, {name}! Your age is {age}."

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

 

接收 JSON 数据

如果客户端发送 JSON 数据(Content-Type: application/json),可以通过 request.jsonrequest.get_json() 获取参数。

 

from flask import Flask, request

app = Flask(__name__)

@app.route('/json_example', methods=['POST'])
def json_example():
    # 获取 POST JSON 数据
    data = request.get_json()  # 或 request.json
    name = data.get('name', 'Guest')  # 默认值为 'Guest'
    age = data.get('age', 0)  # 默认值为 0
    return f"Hello, {name}! Your age is {age}."

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

3. 同时接收 GET 和 POST 参数

如果需要同时支持 GET 和 POST 方法,可以通过 request.argsrequest.form 分别获取对应的参数。

from flask import Flask, request

app = Flask(__name__)

@app.route('/example', methods=['GET', 'POST'])
def example():
    if request.method == 'GET':
        name = request.args.get('name', default='Guest')
        age = request.args.get('age', default=0, type=int)
    elif request.method == 'POST':
        name = request.form.get('name', default='Guest')
        age = request.form.get('age', default=0, type=int)
    return f"Hello, {name}! Your age is {age}."

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

 

4. 通用方法

如果需要同时支持表单数据和 JSON 数据,可以使用 request.values,它会合并 request.argsrequest.form

from flask import Flask, request

app = Flask(__name__)

@app.route('/example', methods=['GET', 'POST'])
def example():
    name = request.values.get('name', default='Guest')
    age = request.values.get('age', default=0, type=int)
    return f"Hello, {name}! Your age is {age}."

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

总结

  • GET 参数:通过 request.args 获取。

  • POST 表单参数:通过 request.form 获取。

  • POST JSON 参数:通过 request.jsonrequest.get_json() 获取。

  • 通用方法:使用 request.values 合并 GET 和 POST 参数。

根据实际需求选择合适的方式即可。


网站公告

今日签到

点亮在社区的每一天
去签到