Flask - Request 和 Response

D
dashen16 2025-01-12T18:01:12+08:00
0 0 249

什么是 Flask

Flask 是一个轻量级的 Python Web 框架,它基于 Werkzeug WSGI 工具箱和 Jinja2 模板引擎。Flask 使用简单,灵活性高,可以快速搭建 Web 应用。

HTTP 请求

在 Web 开发中,客户端通过 HTTP 请求与服务器交互。Flask 提供了 request 对象,用于获取客户端的请求信息。

通过 request 对象,我们可以获得以下信息:

  • 请求方法(GET、POST、PUT 等)
  • URL 路径
  • 查询参数
  • 表单数据
  • HTTP 头部信息

使用示例:

from flask import request

@app.route('/example', methods=['POST'])
def example():
    method = request.method
    path = request.path
    query_params = request.args
    form_data = request.form
    headers = request.headers

    # 处理请求

    return '处理结果'

HTTP 响应

服务器处理完请求后,需要返回一个 HTTP 响应给客户端。Flask 提供了 Response 对象,用于构建响应。

通过 Response 对象,我们可以设置响应的状态码、内容、头部信息等。

使用示例:

from flask import Flask, Response

@app.route('/example')
def example():
    # 处理请求

    # 创建响应对象
    response = Response()
    response.status_code = 200
    response.headers['Content-Type'] = 'text/plain'
    response.data = '处理结果'

    return response

JSON 响应

Flask 还支持返回 JSON 格式的响应。可以通过 jsonify 方法将 Python 对象转换为 JSON 格式。

使用示例:

from flask import Flask, jsonify

@app.route('/example')
def example():
    # 处理请求

    # 创建 JSON 响应
    data = {'key1': 'value1', 'key2': 'value2'}
    response = jsonify(data)

    return response

模板渲染

除了返回纯文本和 JSON 响应外,Flask 还支持使用模板引擎渲染动态内容。常见的模板引擎有 Jinja2、Mako 等。

使用示例(使用 Jinja2):

from flask import Flask, render_template

@app.route('/example')
def example():
    # 处理请求

    # 渲染模板并返回响应
    return render_template('template.html', data=data)

总结

Flask 是一个灵活且功能强大的 Web 框架,通过它我们可以轻松处理 HTTP 请求和构建响应。掌握了 Flask 的 Request 和 Response 对象的用法,我们可以更加灵活地开发 Web 应用,并可以根据业务需求返回不同格式的数据。

相似文章

    评论 (0)