为具有相同视图的多个参数的发布方法创建应用程序路由的有效方法是什么

时间:2019-06-21 07:19:31

标签: flask

我有社会,数学,科学等部门。 如果社交,我将有3个参数 如果数学我有2个参数 如果科学,我有6个参数

我该如何使用单个应用程序路由及其后继方法(而不是GET)动态地编写它,所以我不能使用request.args.get,也不能使用WTForms直接捕获字段。我只需要在其他应用程序通过POST调用使用此API的地方创建服务

我如何以通用方式编写如下内容:

@app.route("/name/<dept>", methods = ['POST', 'GET'])
def Process():
    if request.method == 'POST':
        process()

截至目前,我正在为每个路线做以下路线,还有其他有效的方法吗?

@app.route("/name/social/<part_time>/<pay>/<age>", methods = ['POST', 'GET'])
@app.route("/name/maths/<part_time>/<pay>", methods = ['POST', 'GET'])

@ app.route(“ / name / science ///////,方法= ['POST','GET'])

截至目前这样写

@app.route("/name/social/<part_time>/<pay>/<age>", methods = ['POST', 'GET'])
def processSocial():
    if request.method == 'POST':
        process()


@app.route("/name/maths/<part_time>/<pay>", methods = ['POST', 'GET'])
def processMaths():
    if request.method == 'POST':
        process()



@app.route("/name/science/<part_time>/<pay>/<full_time>/<pay_full>/<age>/<designation>", methods = ['POST', 'GET'])
def processScience():
    if request.method == 'POST':
        process()

预期是:必须在单个approute中编写方案 实际:为每个部门写不同的路线。

1 个答案:

答案 0 :(得分:0)

您可以在单个功能上使用多个路由,为什么要使用单个路由?

@app.route("/name/<dept>/<part_time>/<pay>", methods = ['POST', 'GET'])
@app.route("/name/<dept>/<part_time>/<pay>/<age>", methods = ['POST', 'GET'])
@app.route("/name/<dept>/<part_time>/<pay>/<full_time>/<pay_full>/<age>/<designation>", methods = ['POST', 'GET'])
def processDept(dept, 
                part_time, 
                pay, 
                age=None, 
                full_time=None, 
                pay_full=None, 
                designation=None):
    if request.method == 'POST':
        process()