当前位置: 代码网 > it编程>前端脚本>Python > 使用Flask获取请求参数的方式总结

使用Flask获取请求参数的方式总结

2025年04月27日 Python 我要评论
在 flask 中,可以从 request 对象中获取各种类型的参数。以下是全面整理的获取参数的方式及示例代码。1. 获取 url 查询参数(query string parameters)url 中

在 flask 中,可以从 request 对象中获取各种类型的参数。以下是全面整理的获取参数的方式及示例代码。

1. 获取 url 查询参数(query string parameters)

url 中的查询参数通过 ?key=value&key2=value2 的形式传递,使用 request.args 获取。

示例:

from flask import flask, request

app = flask(__name__)

@app.route('/query')
def get_query_params():
    param1 = request.args.get('param1', default=none, type=str)  # 获取单个参数
    param2 = request.args.getlist('param2')  # 获取多个同名参数
    return f"param1: {param1}, param2: {param2}"

# 测试 url: http://127.0.0.1:5000/query?param1=value1&param2=value2&param2=value3

2. 获取表单数据(form data)

当请求方法为 post 或 put 时,可以通过 request.form 获取表单数据。

示例:

@app.route('/form', methods=['post'])
def get_form_data():
    name = request.form.get('name', default=none, type=str)  # 获取单个参数
    age = request.form.get('age', default=0, type=int)  # 获取并转换为整数
    return f"name: {name}, age: {age}"

# 测试:使用 postman 或 curl 提交表单数据

3. 获取 json 数据

当客户端发送 json 格式的数据时,可以使用 request.json 获取解析后的字典。

示例:

@app.route('/json', methods=['post'])
def get_json_data():
    data = request.json  # 获取 json 数据
    name = data.get('name', none)
    age = data.get('age', 0)
    return f"name: {name}, age: {age}"

# 测试:使用 postman 或 curl 提交 json 数据
# 请求头:content-type: application/json
# 请求体:{"name": "alice", "age": 25}

4. 获取文件上传(file uploads)

当上传文件时,可以通过 request.files 获取文件对象。

示例:

@app.route('/upload', methods=['post'])
def upload_file():
    file = request.files.get('file')  # 获取上传的文件
    if file:
        filename = file.filename
        file.save(f"./{filename}")  # 保存文件到本地
        return f"file uploaded: {filename}"
    return "no file uploaded"

# 测试:使用 postman 或 curl 提交文件

5. 获取路径参数(route parameters)

路径参数是通过 url 路径定义的动态部分,使用 <variable_name> 定义,并在函数中接收。

示例:

@app.route('/user/<username>')
def get_user(username):
    return f"hello, {username}!"

# 测试 url: http://127.0.0.1:5000/user/alice

6. 获取原始请求体(raw body)

如果需要直接获取请求的原始内容,可以使用 request.data 或 request.get_data()。

示例:

@app.route('/raw', methods=['post'])
def get_raw_data():
    raw_data = request.data.decode('utf-8')  # 获取并解码原始数据
    return f"received raw data: {raw_data}"

# 测试:提交任意格式的原始数据

7. 获取 headers

通过 request.headers 获取请求头信息。

示例:

@app.route('/headers')
def get_headers():
    user_agent = request.headers.get('user-agent')  # 获取 user-agent
    host = request.headers.get('host')  # 获取 host
    return f"user-agent: {user_agent}, host: {host}"

# 测试:访问任意 url

8. 获取 cookies

通过 request.cookies 获取客户端发送的 cookie。

示例:

@app.route('/cookies')
def get_cookies():
    session_id = request.cookies.get('session_id', default=none)  # 获取 cookie
    return f"session id: {session_id}"

# 测试:设置 cookie 并访问

9. 获取 method 类型

通过 request.method 获取当前请求的方法类型(如 get, post 等)。

示例:

@app.route('/method', methods=['get', 'post'])
def get_method():
    return f"request method: {request.method}"

# 测试:分别用 get 和 post 方法访问

10. 获取完整的 url

通过 request.url 获取完整的请求 url。

示例:

@app.route('/url')
def get_full_url():
    return f"full url: {request.url}"

# 测试:访问任意 url

总结

方式使用场景属性/方法
查询参数url 中的键值对request.args
表单数据html 表单提交request.form
json 数据客户端发送 json 格式数据request.json
文件上传文件上传request.files
路径参数动态路由中的参数函数参数
原始请求体获取未解析的请求体request.data
headers获取请求头信息request.headers
cookies获取客户端发送的 cookierequest.cookies
method 类型获取请求方法类型request.method
完整 url获取完整的请求 urlrequest.url

以上方法涵盖了 flask 中从 request 对象获取参数的主要方式,根据实际需求选择合适的方式即可。

到此这篇关于使用flask获取请求参数的方式总结的文章就介绍到这了,更多相关flask获取请求参数内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com