如果我尝试对同一条路线使用两种不同的方法, 如果我尝试请求第二条路线,则会收到错误消息。如果我放置 在同一个路由装饰器 ['GET', 'PATCH'] 中它似乎可以工作。 这是怎么回事?
`
@scans_blueprint.route(
'/scans/<string:scan_id>',
methods=['GET']
)
scans_blueprint.route(
'/scans/<string:scan_id>',
methods=['PATCH']
)
`
我期待第二条路线能够与给定的设置一起使用,但事实并非如此。
据我所知,你需要结合这两种方法,然后在路由内使用 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