Flask - Как отправить переменные на разные маршруты без перенаправления? - PullRequest
0 голосов
/ 25 августа 2018

Я сделал два маршрута во Фляске.Я хочу отправить переменные на маршрут из другого маршрута, но не хочу, чтобы он перенаправлял на него маршрут.

@app.route('/')
def index():
    name = 'Hello'
    return redirect(url_for('a', name=name)

@app.route('/<name>')
def a(name):
    return name

Я хочу, чтобы мой индекс не перенаправлял на маршрут 'a','a' Маршрут должен работать только тогда, когда я набираю его вручную.

1 Ответ

0 голосов
/ 25 августа 2018

И 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 раздел документации Flask API.

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