ДокументацияНа основе файлов

Динамические маршруты

Сегмент пути, записанный в квадратных скобках, соответствует любому значению и передает его странице или обработчику.

Динамические сегменты

blog/[slug].nexy обслуживает /blog/{slug}. На странице объявите сегмент как свойство; в обработчике Python примите его в качестве аргумента.

src/маршруты/блог/[слизняк].nexy
---slug: prop[str]---<h1>{{ slug }}</h1>
src/routes/api/users/[id].py
async def GET(id: int):    return {"id": id}

Типизированные сегменты

Аннотация определяет тип.

Где Конверсия
.py обработчик любая аннотация типа FastAPI (int, UUID, Enum...)
.nexy страницы int и float конвертируются; все остальное остается строкой

Значение, не соответствующее аннотации, - не найдено: /api/users/abc отвечает 404, поскольку динамический маршрут захватывает любой URL-адрес, а URL-адрес, который невозможно преобразовать, просто не существует. См. Проверка и ошибки.

Всеобъемлющие сегменты

docs/[...path].nexy обслуживает /docs/{path:path}. Остальные сегменты поступают как одна строка, включая косые черты.

src/routes/docs/[...путь].nexy
---path: prop[str]---<pre>{{ path }}</pre>

/docs/a/b/c дает path == "a/b/c".

Группы маршрутов

Каталог в скобках упорядочивает файлы, не отображаясь в URL-адресе. Он по-прежнему участвует в наследовании: его layout.* и dependencies.py применяются к тому, что находится внутри.

src/routes/
(marketing)/
layout.nexyapplies to the pages in the group
pricing.nexy/pricing
about.nexy/about
(app)/
dashboard.nexy/dashboard

Используйте группы, чтобы придать разным разделам разные макеты, не меняя их URL-адреса.

Приоритет

Статические маршруты имеют преимущество над динамическими, а динамические над универсальными: /blog/new соответствует blog/new.nexy перед blog/[slug].nexy.

Один файл на каждый URL

Регистрируются два файла, которые разрешаются по одному и тому же URL-адресу. Не помещайте blog.nexy рядом с blog/index.nexy и не смешивайте index.nexy и index.py для одного и того же пути.

Следующие шаги

Изменить на GitHub

Enter открывает результат, Esc закрывает.