URL можно построить динамически, добавив переменные части к параметру правила. Эта переменная часть помечена как <имя-переменной> . Он передается в качестве ключевого аргумента функции, с которой связано правило.
В следующем примере параметр правила декоратора route () содержит переменную часть <name>, прикрепленную к URL ‘/ hello’ . Следовательно, если http: // localhost: 5000 / hello / TutorialsPoint введен в качестве URL-адреса в браузере, TutorialPoint будет предоставлен функции hello () в качестве аргумента.
from flask import Flask app = Flask(__name__) @app.route('/hello/<name>') def hello_name(name): return 'Hello %s!' % name if __name__ == '__main__': app.run(debug = True)
Сохраните приведенный выше скрипт как hello.py и запустите его из оболочки Python. Затем откройте браузер и введите URL-адрес http: // localhost: 5000 / hello / TutorialsPoint.
Следующий вывод будет отображен в браузере.
Hello TutorialsPoint!
В дополнение к стандартной строковой переменной по умолчанию правила могут быть созданы с использованием следующих преобразователей:
Sr.No. | Конвертеры и описание |
---|---|
1 |
ИНТ принимает целое число |
2 |
поплавок Для значения с плавающей точкой |
3 |
дорожка принимает косые черты, используемые в качестве символа разделителя каталогов |
ИНТ
принимает целое число
поплавок
Для значения с плавающей точкой
дорожка
принимает косые черты, используемые в качестве символа разделителя каталогов
В следующем коде используются все эти конструкторы.
from flask import Flask app = Flask(__name__) @app.route('/blog/<int:postID>') def show_blog(postID): return 'Blog Number %d' % postID @app.route('/rev/<float:revNo>') def revision(revNo): return 'Revision Number %f' % revNo if __name__ == '__main__': app.run()
Запустите приведенный выше код из Python Shell. Посетите URL-адрес http: // localhost: 5000 / blog / 11 в браузере.
Данный номер используется в качестве аргумента функции show_blog () . Браузер отображает следующий вывод —
Blog Number 11
Введите этот URL в браузере — http: // localhost: 5000 / rev / 1.1
Функция revision () принимает число с плавающей запятой в качестве аргумента. Следующий результат появляется в окне браузера —
Revision Number 1.100000
Правила URL Flask основаны на модуле маршрутизации Werkzeug . Это гарантирует, что сформированные URL являются уникальными и основаны на прецедентах, установленных Apache.
Рассмотрим правила, определенные в следующем скрипте —
from flask import Flask app = Flask(__name__) @app.route('/flask') def hello_flask(): return 'Hello Flask' @app.route('/python/') def hello_python(): return 'Hello Python' if __name__ == '__main__': app.run()
Оба правила выглядят одинаково, но во втором правиле используется косая черта (/) . В результате он становится каноническим URL. Следовательно, использование / python или / python / возвращает тот же результат. Однако, в случае первого правила, / flask / URL приводит к 404 странице Not Found .