# ๐
๐ ๐ช โ๏ธ ๐ ๐ ๐ ๐ ๐ โฎ๏ธ **FastAPI**.
โ โ Jinja2๏ธโฃ, ๐ 1๏ธโฃ โ๏ธ ๐บ & ๐ ๐งฐ.
๐ค ๐ ๐ โซ๏ธ ๐ช ๐ ๐ ๐ช โ๏ธ ๐ ๐ **FastAPI** ๐ธ (๐ ๐).
## โ ๐
โ `jinja2`:
```console
$ pip install jinja2
---> 100%
```
## โ๏ธ `Jinja2Templates`
* ๐ `Jinja2Templates`.
* โ `templates` ๐ ๐ ๐ ๐ช ๐ค-โ๏ธ โช.
* ๐ฃ `Request` ๐ข *โก ๐ ๏ธ* ๐ ๐ ๐จ ๐.
* โ๏ธ `templates` ๐ โ โ & ๐จ `TemplateResponse`, ๐ถโโ๏ธ `request` 1๏ธโฃ ๐-๐ฒ ๐ซ Jinja2๏ธโฃ "๐".
{* ../../docs_src/templates/tutorial001.py hl[4,11,15:18] *}
/// note
๐ ๐ ๐ โ๏ธ ๐ถโโ๏ธ `request` ๐ ๐-๐ฒ ๐ซ ๐ Jinja2๏ธโฃ. , ๐ โ๏ธ ๐ฃ โซ๏ธ ๐ *โก ๐ ๏ธ*.
///
/// tip
๐ฃ `response_class=HTMLResponse` ๐ฉบ ๐ ๐ ๐ช ๐ญ ๐ ๐จ ๐ ๐ธ.
///
/// note | ๐ก โน
๐ ๐ช โ๏ธ `from starlette.templating import Jinja2Templates`.
**FastAPI** ๐ ๐ `starlette.templating` `fastapi.templating` ๐ช ๐, ๐ฉโ๐ป. โ๏ธ ๐
๐ช ๐จ ๐ ๐ โช๏ธโก๏ธ ๐. ๐ โฎ๏ธ `Request` & `StaticFiles`.
///
## โ ๐
โคด๏ธ ๐ ๐ช โ ๐ `templates/item.html` โฎ๏ธ:
```jinja hl_lines="7"
{!../../docs_src/templates/templates/item.html!}
```
โซ๏ธ ๐ ๐ฆ `id` โ โช๏ธโก๏ธ "๐" `dict` ๐ ๐ถโโ๏ธ:
```Python
{"request": request, "id": id}
```
## ๐ & ๐ป ๐
& ๐ ๐ช โ๏ธ `url_for()` ๐ ๐, & โ๏ธ โซ๏ธ, ๐ผ, โฎ๏ธ `StaticFiles` ๐ ๐.
```jinja hl_lines="4"
{!../../docs_src/templates/templates/item.html!}
```
๐ ๐ผ, โซ๏ธ ๐ ๐ ๐ ๐ `static/styles.css` โฎ๏ธ:
```CSS hl_lines="4"
{!../../docs_src/templates/static/styles.css!}
```
& โฉ๏ธ ๐ โ๏ธ `StaticFiles`, ๐ ๐ ๐ ๐ ๐ฆ ๐ ๐ **FastAPI** ๐ธ ๐ `/static/styles.css`.
## ๐
โน
๐
โน, ๐ โ ๐ฏ ๐, โ
๐ ๐ฉบ ๐ ๐.