Flask 核心概念速览:路由、请求、响应与蓝图

一、路由参数与请求方法

Flask 路由允许定义多种参数类型,并通过 methods 属性限制请求方法。

1. 路由参数类型:
除了默认的 string,Flask 还支持:

  • int: 匹配整数,自动转换为 Python int 类型。非数字输入会返回 404。

  • float: 匹配浮点数,自动转换为 Python float 类型。

  • path: 匹配包含斜杠 / 的路径(斜杠不被视为参数分隔符),但会将其转换为字符串。

    • 区别于默认 string: string 类型会把 / 视为路径分隔符,导致参数截断。

  • uuid: 匹配符合 UUID 格式的字符串,并自动转换为 UUID 对象。严格校验格式。

  • any: 限制参数值只能是预定义元组中的一个(如 any(c,d,e)),类似于枚举。

    • 总结: Flask 的路由参数类型支持精准匹配和自动类型转换,优于 Django 默认将所有 URL 参数视为字符串。

2. 请求方法(HTTP动词):

  • 默认情况下,Flask 路由支持 GET 和 HEAD 请求。

  • 限制方法: 使用 methods 属性(列表)来指定允许的 HTTP 方法,例如 methods=['GET', 'POST']

  • HTTP 状态码: 不允许的方法请求会返回 405 Method Not Allowed 错误。

  • 常见 HTTP 方法及其语义:

    • GET: 获取资源(检索)。

    • POST: 提交/创建资源(提交数据,如表单提交)。

    • PUT: 创建或更新资源(整体替换)。

    • DELETE: 删除资源。

    • HEAD: 获取资源的元数据(如响应头),不返回响应体。

  • RESTful API 实践: 通过不同 HTTP 方法操作同一资源路径,实现高内聚,例如 /user 路径,GET 获取用户,PO

你可能感兴趣的:(flask,python,后端)