GET 和 POST 方法的单独 Flask 路由

Separate Flask routes for GET and POST methods

在 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 方法是否应该明确说明,如前面代码片段中的第一个示例,或者省略并因此暗示,例如

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

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