flask GET PATCH 端点覆盖

问题描述 投票:0回答:1

如果我尝试对同一条路线使用两种不同的方法, 如果我尝试请求第二条路线,则会收到错误消息。如果我放置 在同一个路由装饰器 ['GET', 'PATCH'] 中它似乎可以工作。 这是怎么回事?

`
@scans_blueprint.route(
    '/scans/<string:scan_id>',
    methods=['GET']
)

scans_blueprint.route(
    '/scans/<string:scan_id>',
    methods=['PATCH']
)
`

我期待第二条路线能够与给定的设置一起使用,但事实并非如此。

rest flask
1个回答
0
投票

据我所知,你需要结合这两种方法,然后在路由内使用 if 语句进行分支

from flask import request

@app.route('/your_route', methods=['GET', 'POST'])
def your_route():
    if request.method == 'GET':
        # do get stuff
    elif request.method == 'PATCH':
        # do patch stuff

https://flask.palletsprojects.com/en/1.1.x/quickstart/

或者,您可以使用flask-restful并使用两个完全独立的函数来实现方法 - 这可能就是您正在考虑的

class YourRoute(Resource):
    def get():
        # do get stuff

    def patch():
        # do patch stuff

https://flask-restful.readthedocs.io/en/latest/quickstart.html#a-minimal-api

© www.soinside.com 2019 - 2024. All rights reserved.