Как я могу сделать путь / имя / int / float необязательным.
Итак, если бы я сделал: http: // локальный / Zeref /, он все равно работал бы, несмотря на то, что не вводил int или float.
И если бы я сделал http: // локальный / Zeref / 1 /, он будет использовать только name, а 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)






В Flask разрешены необязательные параметры.
Вы можете определить несколько правил для одной и той же функции. Вот документация по Регистрация маршрута 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-адресе. Если аргументов не указано или указано меньше, будут использоваться значения аргументов по умолчанию.
Скриншоты:
Три параметра:
Два параметра:
Один параметр:
Идеально! Спасибо.
Попробуй это
@win.route("/<name>/<int:ints>/<float:floats>")
def web(name, ints=None, floats=None):
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)
Отвечает ли это на ваш вопрос? Может ли Flask иметь необязательные параметры URL?