开发者

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

目录
  • 1. 获取 URL 查询参数(Query String Parameters)
  • 2. 获取表单数据(Form Data)
  • 3. 获取 jsON 数据
  • 4. 获取文件上传(File Uploads)
  • 5. 获取路径参数(Route Parameters)
  • 6. 获取原始请求体(Raw Body)
  • 7. 获取 Headers
  • 8. 获取 Cookies
  • 9. 获取 Method 类型
  • 10. 获取完整的 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 = rehttp://www.devze.comquest.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 或 cuhttp://www.devze.comrl 提交文件

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('UycFN/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.rowww.devze.comute('/cookies')
def get_cookies():
    session_id = request.cookies.get('session_id', defajsult=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获取请求参数内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新开发

开发排行榜