DocsPrimeiros passos
Início rápido
Você criará um projeto Nexy, executá-lo e verá uma mudança de página conforme você o edita. Demora três minutos. O Tutorial então adiciona um endpoint e uma construção de produção.
Antes de começar
| Você precisa de | Por que |
|---|---|
| Python 3,12+ | requires-python em pyproject.toml |
| uv | fornece uvx, cria o projeto e instala seus pacotes |
| Node.js 18+ | somente se você usar uma estrutura de cliente (React, Vue, Svelte, Solid, Preact) |
Não uv ainda? Consulte Instalação.
1. Crie o projeto
uvx nexy new my-app
uvx vem com uv, então instale uv primeiro. Ele roda o Nexy em um ambiente temporário, suficiente para criar o projeto. nexy new então cria o próprio projeto .venv e instala seus pacotes lá. Quatro prompts decidem a fiação:
| Alerta | Efeito |
|---|---|
| Roteador baseado em arquivo? | Yes verifica src/routes/; No estrutura o roteador modular em src/apps/ |
| Tipo de projeto | Web adiciona um layout e ativos de cliente, API inicia sem visualizações |
| Componente cliente? | adiciona uma estrutura e sua Vite configuração |
| ORM/banco de dados | adiciona uma camada de modelo, ou nada |
Não tenho certeza? Responda Yes, Web e nenhum componente cliente. Você pode adicionar cada um mais tarde.
2. Execute-o
cd my-app.venv\Scripts\activate # Windows; on macOS and Linux: source .venv/bin/activatenexy dev
Abra http://localhost:3000. Você deverá ver a página inicial. A porta vem de usePort (padrão 3000); --port e --host substituem-no por execução.
3. Mude uma página
Um arquivo em src/routes/ é uma rota. Criar src/routes/hello.nexy:
title: prop[str] = "Hello"<h1>{{ title }}</h1>Um controlador retorna uma visualização. Criar src/apps/hello_view.nexy:
title: prop[str] = "Hello"<h1>{{ title }}</h1>Em seguida, declare a página em src/apps/app_controller.py e adicione-a ao módulo:
@Controller("/hello")class HelloController: async def get(self): return useViews(LAYOUT, context={"children": useViews("src/apps/hello_view.nexy")})from .app_controller import AboutController, AppController, HelloController controllers = [AppController, AboutController, HelloController]Abra http://localhost:3000/hello. Altere "Hello" para "Bonjour" e salve: a página é atualizada sem recarregar manualmente. Se o código estiver errado, o navegador mostra o erro em vez de uma página em branco.
prop[str] declara uma propriedade digitada. A marcação sob o frontmatter é Jinja2 - veja arquivos .nexy.
Onde será o próximo
| Você deseja | Ler |
|---|---|
| Adicione um endpoint Python e envie uma compilação | Tutorial |
| Saiba onde cada arquivo pertence | Estrutura do projeto |
| Entenda quem constrói o quê | Como funciona o Nexy |
| Use React, Vue, Svelte, Solid ou Preact | Visualizações |