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

Written by

in

文章目录
  • 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
  • 当请求方法为 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 提交表单数据
  • 当客户端发送 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}
  • 当上传文件时,可以通过 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 提交文件
  • 路径参数是通过 URL 路径定义的动态部分,使用 <variable_name> 定义,并在函数中接收。 示例: @app.route(‘/user/<username>’) def get_user(username): return f”Hello, {username}!” # 测试 URL: http://127.0.0.1:5000/user/Alice
  • 如果需要直接获取请求的原始内容,可以使用 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}” # 测试:提交任意格式的原始数据
  • 通过 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
  • 通过 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 并访问
  • 通过 request.method 获取当前请求的方法类型(如 GET, POST 等)。 示例: @app.route(‘/method’, methods=[‘GET’, ‘POST’]) def get_method(): return f”Request method: {request.method}” # 测试:分别用 GET 和 POST 方法访问
  • 通过 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 获取客户端发送的 Cookie request.cookies Method 类型 获取请求方法类型 request.method 完整 URL 获取完整的请求 URL request.url 以上方法涵盖了 Flask 中从 request 对象获取参数的主要方式,根据实际需求选择合适的方式即可。 到此这篇关于使用Flask获取请求参数的方式总结的文章就介绍到这了,更多相关Flask获取请求参数内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: 详解flask中如何获取不请求方式的参数 flask post获取前端请求参数的三种方式总结 使用flask如何获取post请求参数 Flask请求数据获取方法详解 Flask处理POST请求的教程指南
  • 目录
    • 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 对象中获取各种类型的参数。以下是全面整理的获取参数的方式及示例代码。

    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
    

    当请求方法为 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 提交表单数据
    

    当客户端发送 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}
    

    当上传文件时,可以通过 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 提交文件
    

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

    示例:

    @app.route('/user/<username>')
    def get_user(username):
        return f"Hello, {username}!"
    
    # 测试 URL: http://127.0.0.1:5000/user/Alice
    

    如果需要直接获取请求的原始内容,可以使用 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}"
    
    # 测试:提交任意格式的原始数据
    

    通过 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
    

    通过 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 并访问
    

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

    示例:

    @app.route('/method', methods=['GET', 'POST'])
    def get_method():
        return f"Request method: {request.method}"
    
    # 测试:分别用 GET 和 POST 方法访问
    

    通过 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 获取客户端发送的 Cookie request.cookies
    Method 类型 获取请求方法类型 request.method
    完整 URL 获取完整的请求 URL request.url

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

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

    您可能感兴趣的文章:

    • 详解flask中如何获取不请求方式的参数
    • flask post获取前端请求参数的三种方式总结
    • 使用flask如何获取post请求参数
    • Flask请求数据获取方法详解
    • Flask处理POST请求的教程指南

    站内搜索