From eac374e350e0ad7c74288727ad284e04cf3a1d10 Mon Sep 17 00:00:00 2001 From: Rafael de Oliveira Marques Date: Wed, 12 Nov 2025 08:39:20 -0300 Subject: [PATCH] update advanced/templates.md --- docs/pt/docs/advanced/templates.md | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/docs/pt/docs/advanced/templates.md b/docs/pt/docs/advanced/templates.md index 65ff89fae..00493d635 100644 --- a/docs/pt/docs/advanced/templates.md +++ b/docs/pt/docs/advanced/templates.md @@ -1,4 +1,4 @@ -# Templates +# Templates { #templates } Você pode usar qualquer template engine com o **FastAPI**. @@ -6,28 +6,30 @@ Uma escolha comum é o Jinja2, o mesmo usado pelo Flask e outras ferramentas. Existem utilitários para configurá-lo facilmente que você pode usar diretamente em sua aplicação **FastAPI** (fornecidos pelo Starlette). -## Instalação de dependências +## Instalar dependências { #install-dependencies } -Para instalar o `jinja2`, siga o código abaixo: +Certifique-se de criar um [ambiente virtual](../virtual-environments.md){.internal-link target=_blank}, ativá-lo e instalar `jinja2`:
```console $ pip install jinja2 + +---> 100% ```
-## Usando `Jinja2Templates` +## Usando `Jinja2Templates` { #using-jinja2templates } * Importe `Jinja2Templates`. -* Crie um `templates` que você possa reutilizar posteriormente. +* Crie um objeto `templates` que você possa reutilizar posteriormente. * Declare um parâmetro `Request` no *path operation* que retornará um template. -* Use o `template` que você criou para renderizar e retornar uma `TemplateResponse`, passe o nome do template, o request object, e um "context" dict com pares chave-valor a serem usados dentro do template do Jinja2. +* Use o `templates` que você criou para renderizar e retornar uma `TemplateResponse`, passe o nome do template, o objeto `request` e um dicionário "context" com pares chave-valor a serem usados dentro do template do Jinja2. {* ../../docs_src/templates/tutorial001.py hl[4,11,15:18] *} -/// note +/// note | Nota Antes do FastAPI 0.108.0, Starlette 0.29.0, `name` era o primeiro parâmetro. @@ -49,7 +51,7 @@ Você também poderia usar `from starlette.templating import Jinja2Templates`. /// -## Escrevendo Templates +## Escrevendo templates { #writing-templates } Então você pode escrever um template em `templates/item.html`, por exemplo: @@ -57,7 +59,7 @@ Então você pode escrever um template em `templates/item.html`, por exemplo: {!../../docs_src/templates/templates/item.html!} ``` -### Interpolação de Valores no Template +### Valores de contexto do template { #template-context-values } No código HTML que contém: @@ -81,7 +83,7 @@ Por exemplo, dado um ID de valor `42`, aparecerá: Item ID: 42 ``` -### Argumentos do `url_for` +### Argumentos do `url_for` no template { #template-url-for-arguments } Você também pode usar `url_for()` dentro do template, ele recebe como argumentos os mesmos argumentos que seriam usados pela sua *path operation function*. @@ -103,9 +105,9 @@ Por exemplo, com um ID de `42`, isso renderizará: ``` -## Templates e Arquivos Estáticos +## Templates e arquivos estáticos { #templates-and-static-files } -Você também pode usar `url_for()` dentro do template e usá-lo, por examplo, com o `StaticFiles` que você montou com o `name="static"`. +Você também pode usar `url_for()` dentro do template e usá-lo, por exemplo, com o `StaticFiles` que você montou com o `name="static"`. ```jinja hl_lines="4" {!../../docs_src/templates/templates/item.html!} @@ -117,8 +119,8 @@ Neste exemplo, ele seria vinculado a um arquivo CSS em `static/styles.css` com: {!../../docs_src/templates/static/styles.css!} ``` -E como você está usando `StaticFiles`, este arquivo CSS será automaticamente servido pela sua aplicação FastAPI na URL `/static/styles.css`. +E como você está usando `StaticFiles`, este arquivo CSS será automaticamente servido pela sua aplicação **FastAPI** na URL `/static/styles.css`. -## Mais detalhes +## Mais detalhes { #more-details } Para obter mais detalhes, incluindo como testar templates, consulte a documentação da Starlette sobre templates.