Browse Source

update advanced/templates.md

pull/14228/head
Rafael de Oliveira Marques 8 months ago
parent
commit
eac374e350
  1. 30
      docs/pt/docs/advanced/templates.md

30
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`:
<div class="termy">
```console
$ pip install jinja2
---> 100%
```
</div>
## 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á:
<a href="/items/42">
```
## 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 <a href="https://www.starlette.dev/templates/" class="external-link" target="_blank">documentação da Starlette sobre templates</a>.

Loading…
Cancel
Save