English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Функция url_for() очень полезна для динамического построения URL для определенной функции. Функция принимает имя функции в качестве первого параметра и принимает один или несколько имен параметров, которые соответствуют переменным частям URL.
Следующий скрипт демонстрирует использование функции url_for().
# Файл: example.py # Copyright: 2020 By w3codebox # Автор: ru.oldtoolbag.com # Дата: 2020-08-08 from flask import Flask, redirect, url_for app = Flask(__name__) @app.route('/admin') def hello_admin(): return 'Hello Admin' @app.route('/guest/<guest>') def hello_guest(guest): return 'Hello %s as Guest' % guest @app.route('/user/<name>') def user(name): if name == 'admin': return redirect(url_for('hello_admin')) else: return redirect(url_for('hello_guest', guest = name)) if __name__ == '__main__': app.run(debug = True)
В上面的 скрипте есть функция user(имя), которая принимает значение параметра из URL.
Функция User() проверяет, соответствует ли полученный параметр 'admin'. Если соответствует, то использует url_for() для перенаправления приложения на функцию hello_admin(),否则 передает полученный параметр в качестве параметра guest функции hello_guest().
Сохраните上面的 код в файл: hello.pyи запустите из Python shell.
Откройте браузер и введите URL - http://localhost:5000/user/admin
Результат ответа приложения в браузере -
# Файл: example.py # Copyright: 2020 By w3codebox # Автор: ru.oldtoolbag.com # Дата: 2020-08-08 Привет Admin
Введите следующий URL в браузере - http://localhost:5000/user/mvl
Результат ответа приложения теперь变为 -
# Файл: example.py # Copyright: 2020 By w3codebox # Автор: ru.oldtoolbag.com # Дата: 2020-08-08 Привет mvl, вы входите как Гость