DokuErste Schritte
Was ist Nexy?
Nexy ist ein Python Framework für Fullstack-Webanwendungen: Ihre Seiten und Ihre API leben in einem Projekt und werden von einem Server bereitgestellt.
Was Sie bekommen
- Seiten in Python. Eine
.nexy-Datei ist HTML mit ein paar Zeilen Python oben; Eine.md-Datei ist auch eine Seite. Zum Rendern einer Seite ist kein JavaScript erforderlich.
- Eine API im selben Projekt. Eine
.py-Datei untersrc/routes/beantwortet HTTP-Anfragen: Eine Funktion namensGETantwortetGET, eine Funktion namensPOSTantwortetPOST.
- Eine API im selben Projekt. Ein Controller beantwortet HTTP-Anfragen: seine Methode
getantwortetGET, seine MethodepostantwortetPOSTund ein Modul gruppiert Controller und ihre Dienste.
- Eine API im selben Projekt. Der FastAPI-Router, den Sie bereits haben, antwortet weiterhin, und die Seiten und Routendateien von
src/routes/antworten daneben.
- API-Dokumentation kostenlos. Jede API-Route erscheint in einem OpenAPI Schema und Scalar zeigt sie als interaktive Referenz unter
/docs. - Formulare, die Python. aufrufen. Ein Formular oder ein eingegebener Aufruf vom Browser erreicht dieselbe Python-Funktion.
- Ein Frontend-Framework, wenn Sie eines benötigen. React, Vue, Svelte, Solid oder Preact, für eine Komponente oder für die gesamte Site.
- Ein Befehl zum Arbeiten, einer zum Versenden.
nx devwird beim Speichern neu geladen;nx buildbereitet die Produktion vor.
Worauf es aufgebaut ist
Die aktuelle Version 2.2 basiert auf Tools, die Sie vielleicht bereits kennen:
| Teil | Aufgebaut | Was es für Sie bedeutet |
|---|---|---|
| Server und API | FastAPI | Eine API-Route ist eine FastAPI-Route: Pydantic-Validierung und Abhängigkeiten funktionieren wie gewohnt |
| API-Referenz | OpenAPI und Skalar | das Schema ist bei /openapi.json, die Referenz bei /docs |
| Seiten | Jinja2 | Eine .nexy-Seite verwendet Jinja2-Tags wie {{ title }} |
| Frontend (optional) | Vite | nur mit einem Frontend-Framework, das auch Node.js benötigt |
Eine erste Seite und ein erster Endpunkt
Eine Seite, bei /hello:
title: prop[str] = "Hello"<h1>{{ title }}</h1>Ein Endpunkt unter GET /api/items, aufgeführt unter /docs ohne zusätzlichen Code:
from nexy.http import Request async def GET(request: Request): return {"items": []}Eine Ansicht und die Controller, die /hello/ und GET /api/items/ beantworten. Der Endpunkt wird ohne zusätzlichen Code unter /docs aufgeführt, und eine URL ohne den letzten Schrägstrich leitet dorthin weiter:
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": []}Das Root-Modul listet sie auf und useRouter = AppModule in nexyconfig.py mountet sie:
from nexy.decorators import Module from .hello_controller import HelloController, ItemsController @Module()class AppModule: controllers = [HelloController, ItemsController]Was Nexy Ihnen überlässt
Zu Ihrer Anwendung gehören die Datenbank, das Login und die Regeln, wer was tun darf, also wählen Sie die Bibliotheken aus. Datenbanken und Middleware und Sicherheit zeigen, wo sie jeweils eingebunden sind.
Nächste Schritte
- Installation: Installieren Sie uv und erstellen Sie ein Projekt
- Schnellstart: ausführen, eine Seite ändern, erstellen
- Kernkonzepte: die wenigen Wörter, die im Rest der Dokumente verwendet werden