DokumentasiBerbasis file
Warisan
Beberapa file di src/routes/ berlaku untuk semua file di bawah direktorinya. Semuanya diselesaikan dengan cara yang sama: Nexy memulai dari direktori rute dan berjalan hingga src/routes/.
| Mengajukan | Aturan |
|---|---|
layout.nexy, layout.tsx, layout.vue, layout.svelte |
setiap tata letak dari akar hingga halaman membungkusnya, terluar dulu |
middleware.py |
setiap file dari root hingga rute membungkus permintaan, terluar terlebih dahulu, sebelum dependensi |
dependencies.py |
setiap file dari root hingga rute berjalan, yang terluar terlebih dahulu, lalu penjaga pawangnya sendiri |
notfound.nexy, errors.nexy |
yang terdekat menang, per kode status |
Untuk halaman di atas, tata letak disarangkan sebagai root layout > (shop) layout > cart layout > page, dan dependensi dijalankan sebagai root > (shop) > cart > handler guards.
Kenapa yang terluar dulu
Tata letak luar menggambar bingkai dan ketergantungan luar memutuskan siapa yang boleh masuk. Menempatkannya terlebih dahulu berarti bagian dalam dapat mengandalkannya: direktori yang memerlukan otentikasi dijalankan sebelum penangan yang membaca pengguna.
Ketergantungan (shop) pada pohon memeriksa cookie keranjang, sehingga ketergantungan keranjang di bawahnya dapat membaca keranjang tanpa memeriksa lagi:
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]Tata Letak
Semua file tata letak tumpukan keluarga folder: lihat Tata Letak. Keluarga yang berbeda tidak dapat digabungkan: layout.vue tidak pernah membungkus halaman .tsx, dan proyek memiliki tata letak layout.nexy atau klien, tidak pernah keduanya (mode).
Tata letak pohon yang paling dalam hanya menambahkan bingkainya sendiri: tata letak akar di sekitarnya masih menggambar dokumen.
children: prop[NexyElement]<section class="cart"> <h2>Your cart</h2> {{ children | safe }}</section>File perangkat tengah
Lihat File Middleware: file tersebut dijalankan sebelum dependensi dan dapat menjawab tanpa mencapai rute.
Akar middleware.py membungkus setiap rute pohon, termasuk keretanya:
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 responseKetergantungan
Lihat Dependensi untuk urutan dalam file handler, termasuk @UseGuard dan @Middleware.
Halaman kesalahan
notfound.nexy dan errors.nexy dipasang satu kali pada root rute; salinan dalam subdirektori menyaring halaman untuk awalan tersebut. Lihat Halaman kesalahan.
Salinan di cart/ menjawab 404 di bawah /cart, dan akarnya menyimpan sisanya:
<h1>This product is gone</h1><p><a href="/cart">Back to your cart</a></p>