DokumentasiLangkah pertama
Apa itu Nexy?
Nexy adalah kerangka kerja Python untuk aplikasi web fullstack: halaman Anda dan API Anda berada dalam satu proyek dan dilayani oleh satu server.
Apa yang Anda dapatkan
- Halaman dalam Python. File
.nexyadalah HTML dengan beberapa baris Python di atasnya; file.mdjuga merupakan halaman. Tidak diperlukan JavaScript untuk merender halaman.
- API dalam proyek yang sama. File
.pydi bawahsrc/routes/menjawab permintaan HTTP: fungsi bernamaGETmenjawabGET, fungsi bernamaPOSTmenjawabPOST.
- API dalam proyek yang sama. Pengontrol menjawab permintaan HTTP: metodenya
getmenjawabGET, metodenyapostmenjawabPOST, dan modul mengelompokkan pengontrol dan layanannya.
- API dalam proyek yang sama. Router FastAPI yang sudah Anda miliki terus menjawab, dan halaman serta file rute
src/routes/menjawab di sebelahnya.
- Dokumentasi API gratis. Setiap rute API muncul dalam skema OpenAPI, dan Scalar menampilkannya sebagai referensi interaktif di
/docs. - Formulir yang memanggil Python. Formulir, atau panggilan yang diketik dari browser, mencapai fungsi Python yang sama.
- Kerangka kerja frontend bila Anda menginginkannya. React, Vue, Svelte, Solid atau Preact, untuk satu komponen atau untuk keseluruhan situs.
- Satu perintah untuk bekerja, satu untuk dikirim.
nx devdimuat ulang saat Anda menyimpan;nx buildmenyiapkan produksi.
Di atas apa itu dibangun
Versi saat ini, 2.2, menggunakan alat yang mungkin sudah Anda ketahui:
| Bagian | Dibangun | Apa artinya bagi Anda |
|---|---|---|
| Server dan API | FastAPI | rute API adalah rute FastAPI: validasi dan dependensi Pydantic berfungsi seperti biasa |
| Referensi API | OpenAPI dan Skalar | skemanya ada di /openapi.json, referensinya ada di /docs |
| Halaman | Jinja2 | halaman .nexy menggunakan tag Jinja2 seperti {{ title }} |
| Bagian depan (opsional) | Vite | hanya dengan kerangka frontend, yang juga membutuhkan Node.js |
Halaman pertama dan titik akhir pertama
Sebuah halaman, di /hello:
title: prop[str] = "Hello"<h1>{{ title }}</h1>Titik akhir, di GET /api/items, terdaftar di /docs tanpa kode tambahan apa pun:
from nexy.http import Request async def GET(request: Request): return {"items": []}Tampilan, dan pengontrol yang menjawab /hello/ dan GET /api/items/. Titik akhir terdaftar di /docs tanpa kode tambahan apa pun, dan URL tanpa garis miring terakhir dialihkan ke sana:
title: prop[str] = "Hello"<h1>{{ title }}</h1>from nexy.decorators import Controllerfrom nexy.hooks import useViews @Controller("/hello")class HelloController: async def get(self): return useViews("src/apps/hello_view.nexy", context={"title": "Hello"}) @Controller("/api/items")class ItemsController: async def get(self): return {"items": []}Modul root mencantumkannya, dan useRouter = AppModule di nexyconfig.py memasangnya:
from nexy.decorators import Module from .hello_controller import HelloController, ItemsController @Module()class AppModule: controllers = [HelloController, ItemsController]Apa yang Nexy serahkan padamu
Basis data, login, dan aturan tentang siapa yang boleh melakukan apa yang menjadi milik aplikasi Anda, jadi Anda memilih perpustakaannya. Databases dan Middleware dan keamanan menunjukkan di mana masing-masing dihubungkan.
Langkah selanjutnya
- Instalasi: instal uv dan buat proyek
- Mulai cepat: jalankan, ubah halaman, buat
- Konsep inti: beberapa kata yang digunakan dokumen lainnya