【问题标题】:Separate Flask routes for GET and POST methodsGET 和 POST 方法的独立 Flask 路由
【发布时间】:2020-01-03 10:49:24
【问题描述】:

在 Flask 中定义路由时,最好使用定义多个 HTTP 方法的单个路由,并在该单个路由内使用显式逻辑处理不同的 HTTP 方法,例如

@app.route("/api/users/", methods=['GET', 'POST'])
def users():
if request.method == 'GET':
    ...
elif request.method == 'POST':
    ...

或使用特定的 HTTP 方法定义多个路由,从而避免每个路由内部的任何显式 HTTP 请求方法逻辑,例如

@app.route("/api/users/", methods=['GET'])
def users_get():
    ...


@app.route("/api/users/", methods=['POST'])
def users_post():
    ...

另外,由于 Flask 默认允许在所有路由上使用 GET HTTP 方法,为静态资源定义附加路由的最佳实践是什么? HTTP 方法应该明确说明,如前面代码 sn-p 中的第一个示例,还是省略并因此隐含,例如

@app.route("/api/users/")
def users_static():
    ...

【问题讨论】:

    标签: http flask routing


    【解决方案1】:

    如果在处理路由的 HTTP 方法之间有很多通用代码,则可以首选第一种方式。如果没有,您可以将它们分成不同的功能。

    【讨论】:

    • 感谢您对我问题第一部分的评论。你能提供关于第二部分的任何想法吗?
    • 没关系。只需选择一种方式并始终保持一致。
    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    相关资源
    最近更新 更多