Учебники

Колба — Переменные правила

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 .