DokuErste Schritte

Schnellstart

Sie erstellen ein Nexy-Projekt, führen es aus und sehen beim Bearbeiten eine Seitenänderung. Es dauert drei Minuten. Das Tutorial fügt dann einen Endpunkt und einen Produktions-Build hinzu.

Bevor Sie beginnen

Du brauchst Warum
Python 3.12+ requires-python in pyproject.toml
uv stellt uvx bereit, erstellt das Projekt und installiert seine Pakete
Node.js 18+ nur wenn Sie ein Client-Framework verwenden (React, Vue, Svelte, Solid, Preact)

Noch kein uv? Siehe Installation.

1. Erstellen Sie das Projekt

uvx nexy new my-app

uvx wird mit uv geliefert, also installieren Sie zuerst uv. Es führt Nexy in einer temporären Umgebung aus, die ausreicht, um das Projekt zu erstellen. nexy new erstellt dann das projekteigene .venv und installiert seine Pakete dort. Vier Eingabeaufforderungen entscheiden über die Verkabelung:

Prompt Wirkung
Dateibasierter Router? Yes scannt src/routes/; No baut den modularen Router in src/apps/ auf
Projekttyp Web fügt ein Layout und Client-Assets hinzu, API startet ohne Ansichten
Client-Komponente? fügt ein Framework und dessen Vite-Setup hinzu
ORM / Datenbank Fügt eine Modellebene hinzu oder nichts

Nicht sicher? Antwort Yes, Web und keine Client-Komponente. Sie können jedes später hinzufügen.

2. Führen Sie es aus

cd my-app.venv\Scripts\activate    # Windows; on macOS and Linux: source .venv/bin/activatenexy dev

Öffnen Sie http://localhost:3000. Sie sollten die Startseite sehen. Der Port kommt von usePort (Standard 3000); --port und --host überschreiben es pro Lauf.

3. Wechseln Sie eine Seite

Eine Datei unter src/routes/ ist eine Route. Erstellen Sie src/routes/hello.nexy:

src/routes/hello.nexy
---title: prop[str] = "Hello"---<h1>{{ title }}</h1>

Ein Controller gibt eine Ansicht zurück. Erstellen Sie src/apps/hello_view.nexy:

src/apps/hello_view.nexy
---title: prop[str] = "Hello"---<h1>{{ title }}</h1>

Dann deklarieren Sie die Seite in src/apps/app_controller.py und fügen Sie sie dem Modul hinzu:

src/apps/app_controller.py
@Controller("/hello")class HelloController:    async def get(self):        return useViews(LAYOUT, context={"children": useViews("src/apps/hello_view.nexy")})
src/apps/app_module.py
from .app_controller import AboutController, AppController, HelloController controllers = [AppController, AboutController, HelloController]

Öffnen Sie http://localhost:3000/hello. Ändern Sie "Hello" in "Bonjour" und speichern Sie: Die Seite wird ohne manuelles Neuladen aktualisiert. Wenn der Code falsch ist, zeigt der Browser den Fehler anstelle einer leeren Seite an.

prop[str] deklariert eine typisierte Eigenschaft. Das Markup unter der Frontmatter ist Jinja2 – siehe .nexy-Dateien.

Wohin als nächstes

Du willst Lesen
Fügen Sie einen Python-Endpunkt hinzu und versenden Sie einen Build Tutorial
Wissen Sie, wo jede Datei hingehört Projektstruktur
Verstehen Sie, wer was baut Wie Nexy funktioniert
Verwenden Sie React, Vue, Svelte, Solid oder Preact. Ansichten

Auf GitHub bearbeiten

Enter öffnet das Ergebnis, Esc schließt.