Flask - дополнительные аргументы пути - PullRequest
0 голосов
/ 23 ноября 2018

Как я могу сделать путь / имя / int / float необязательным.

Так что если бы я сделал: http://localhost/Zeref/, он все равно работал бы, несмотря на отсутствие ввода int или float.

А если я это сделаю http://localhost/Zeref/1/ Это будет делать только имя и int, а не float.

Так что я могу сделать, чтобы сделать их необязательными?

Код:

import flask

win = flask.Flask(__name__)

@win.route("/<name>/<int:ints>/<float:floats>")

def web(name, ints, floats):
    return "Welcome Back: %s Your Int: %d Your Float: %f" % (name, ints, floats)

win.run("localhost", 80)

1 Ответ

0 голосов
/ 23 ноября 2018

Необязательные параметры допускаются в колбе.

Вы можете определить несколько правил для одной и той же функции.Вот документация по регистрациям URL-маршрутов .

Обновленный код:

import flask

win = flask.Flask(__name__)

@win.route('/<name>/', defaults={'ints': None, 'floats': None})
@win.route('/<name>/<int:ints>/', defaults={'floats': None})
@win.route("/<name>/<int:ints>/<float:floats>/")
def web(name, ints, floats):
    if ints!=None and floats!=None:
        return "Welcome Back: %s, Your Int: %d, Your Float: %f" % (name, ints, floats)
    elif ints!=None and floats==None:
        return "Welcome Back: %s, Your Int: %d" % (name, ints)
    return "Welcome Back: %s" % (name)

win.run(debug=True)

Когда chrome или любой другой веб-браузер запрашивает любой из этих URL-адресов, Flask вызываетсвязанная функция вместе с аргументами, указанными в URL.Если аргументы отсутствуют или меньше, будут использоваться значения аргументов по умолчанию.

Снимки экрана:

Три параметра:

Three parameters

Два параметра:

Two parameters

Одинпараметр:

One parameter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...