DocsBasado en archivos
herencia
Varios archivos en src/routes/ se aplican a todo lo que se encuentra debajo de su directorio. Todos se resuelven de la misma manera: Nexy comienza en el directorio de la ruta y camina hasta src/routes/.
| Archivo | regla |
|---|---|
layout.nexy, layout.tsx, layout.vue, layout.svelte |
cada diseño desde la raíz hasta la página lo envuelve, el más externo primero |
middleware.py |
cada archivo desde la raíz hasta la ruta envuelve la solicitud, más externa primero, antes de las dependencias |
dependencies.py |
se ejecuta cada archivo desde la raíz hasta la ruta, el más externo primero, luego los propios guardias del controlador |
notfound.nexy, errors.nexy |
el más cercano gana, según el código de estado |
Para la página anterior, los diseños se anidan como root layout > (shop) layout > cart layout > page y las dependencias se ejecutan como root > (shop) > cart > handler guards.
¿Por qué lo más externo primero?
Un diseño exterior dibuja el marco y una dependencia exterior decide quién puede entrar. Ponerlos en primer lugar significa que los internos pueden confiar en ellos: un directorio que requiere autenticación se ejecuta antes que un controlador que lee al usuario.
La dependencia (shop) del árbol verifica la cookie del carrito, por lo que la dependencia del carrito debajo puede leer el carrito sin volver a verificar:
from nexy.http import HTTPException, Request def require_cart(request: Request) -> None: if "cart" not in request.cookies: raise HTTPException(status_code=400, detail="No cart") dependencies = [require_cart]Diseños
Todos los archivos de diseño de una pila de familia de carpetas: consulte Diseños. Las diferentes familias no se mezclan: una layout.vue nunca envuelve una página .tsx, y un proyecto tiene layout.nexy o diseños de cliente, nunca ambos (modos).
El diseño más interno del árbol solo agrega su propio marco: el diseño raíz a su alrededor todavía dibuja el documento.
children: prop[NexyElement]<section class="cart"> <h2>Your cart</h2> {{ children | safe }}</section>Archivos de software intermedio
Ver Archivos middleware: se ejecutan antes de las dependencias y pueden responder sin llegar a la ruta.
Una raíz middleware.py envuelve cada ruta del árbol, incluido el carro:
import time from nexy.http import Request async def middleware(request: Request, call_next): start = time.perf_counter() response = await call_next(request) response.headers["x-time-ms"] = f"{(time.perf_counter() - start) * 1000:.1f}" return responseDependencias
Consulte Dependencias para conocer el orden en un archivo de controlador, incluidos @UseGuard y @Middleware.
Páginas de error
notfound.nexy y errors.nexy se instalan una vez en la raíz de las rutas; una copia en un subdirectorio refina la página para ese prefijo. Consulte Páginas de error.
Una copia en cart/ responde a los 404 en /cart, y la raíz se queda con el resto:
<h1>This product is gone</h1><p><a href="/cart">Back to your cart</a></p>