Каков эффективный способ создания маршрутов приложения для метода post, имеющего несколько аргументов для одного и того же представления? - PullRequest
0 голосов
/ 21 июня 2019

У меня есть отдел по социальным вопросам, математике, естественным наукам и т. Д. ... если у меня будет 3 аргумента, если по математике у меня 2 аргумента, если по науке у меня 6 аргументов

как я могу написать это динамически с помощью одного приложенияroute и его метод post не GET, поэтому я не могу использовать request.args.get и не использую WTForms для захвата полей напрямую.мне просто нужно создать службу, где другое приложение использует этот API через вызов POST

как я могу написать, как показано ниже, в общем виде:

@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 //////", method = ['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()

ожидается следующее: необходимо написать сценарий в одном действительном приложении: написать разные маршруты для каждого отдела.

1 Ответ

0 голосов
/ 21 июня 2019

Вы можете использовать несколько маршрутов для одной функции, зачем вам один маршрут?.

@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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...