English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Создание URL Flask

Функция 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, вы входите как Гость