Я сделал два маршрута в Фласке. Я хочу отправлять переменные на маршрут с другого маршрута, но я не хочу, чтобы он перенаправлял ему маршрут.
@app.route('/')
def index():
name = 'Hello'
return redirect(url_for('a', name=name)
@app.route('/<name>')
def a(name):
return name
Я хочу, чтобы мой индекс не перенаправлялся на маршрут 'a'
. 'a'
Маршрут" должен работать только тогда, когда я набираю его вручную.
И index()
и a()
- действительно просто функции. Вы можете позвонить им напрямую; поэтому в index()
вы можете вызвать a(name='Hello')
и вернуть результат этого вызова:
@app.route('/')
def index():
name = 'Hello'
return a(name=name)
@app.route('/<name>')
def a(name):
return name
Вы можете также зарегистрировать несколько URL-адресов для одной функции просмотра, включая использование значений по умолчанию для путей, в которых нет переменных. Вам тогда не нужно ничего называть:
@app.route('/<name>')
@app.route('/', defaults={'name': 'Hello'})
def a(name):
return name
Когда /
URL-адрес сопоставляется, вызывается a(name='Hello')
, потому что карта по defaults
устанавливает name
.
Для получения дополнительной информации см. Раздел "Регистрации URL-адресов" в документации API флагов.