Роутинг (Routing)¶
Модуль создания роутов.
from hius.routing import route, mount, websocket
Описание¶
Методы модуля позволяют создать HTTP/Websocket роуты, а так же примонтировать к уже существующему приложению новое.
Методы¶
Добавление HTTP роута.
route(path, endpoint, methods=None, name=None)
- path (str) - путь.
- endpoint (Callable) - обработчик роута.
- methods (Sequence[str]) - список методов, которые будут обрабатыватся на этом роуте.
- name (str) - имя роута.
Добавление Websocket роута.
websocket(path, endpoint, name=None)
- path (str) - путь.
- endpoint (Callable) - обработчик роута.
- name (str) - имя роута.
Монтирование суб-приложения.
mount(path, app, name=None)
- path (str) - путь.
- endpoint (ASGIApp) - инстанс суб-приложения.
- name (str) - имя cуб-приложения.
Шаблоны пути¶
Вы можете использовать "шаблоны" для получения компонентов пути.
route('/users/{name}', user)
Существует возможность указать тип ожидаемого параметра или регулярное выражение, которому он должен соответствовать.
Доступные шаблоны:
- str - строковое значения.
- int - целочисленное значения.
- float - число с точкой.
- uuid - uuid в формате 36 символов с разделителем "-", регистронезависимый.
- path - весь оставшийся путь.
- regex - регулярное выражение.
route('/page/{num:int}', page)
route('/id/{ident:uuid}', store)
route('/phone/{phone:\d{3}-\d{3}}', phonebook)
Обработчик роута¶
Подробнее в отдельном разделе (Endpoint)
Имя роута¶
Имя необходимо для удобства получения роута внутри приложения для организации редиректов. Для этого в приложении реализован метод url_path_for.