FastAPI, Jinja 기초 예제

 

project_jinja 프로젝트 폴더를 만들고 그 안에  templates 폴더를 만듭니다.

 

project_jinja 프로젝트 폴더에 main.py 파일을 작성합니다.

 

[main.py] 

from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates

app = FastAPI()

templates = Jinja2Templates(directory="templates")


DOGS = [{"name": "금순이", "type": "골든리트리버"}, {"name": "진이", "type": "진돗개"}]

@app.get('/')
async def name(request: Request):
    return templates.TemplateResponse("home.html", {"request":request, "name": "수알치", "dogs": DOGS})

 

templates 폴더에 home.html 파일을 작성합니다. 

 

[home.html]

<html>
<head>
<title>Hello, Jinja</title>

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
</head>
<body>
<br>
<p>

~~~~~~~~~~ 강아지 주인은 '{{name}}' ~~~~~~~~~~~~~~
</p>
<br>
<table class="table">
<tr>
<th>강아지 이름</th>
<th>종류</th>
</tr>
{% for dog in dogs %}
<tr>
<td> {{dog.name}} </td>
<td> {{dog.type}} </td>
</tr>
{% endfor %}
</table>
</body>
</html>

 

 

다음 명령으로 FastAPI를 실행합니다.

 

uvicorn main:app 

 

웹브라우저에서 접속합니다. 127.0.0.1:8000/

 

[결과 화면]

 

반응형

+ Recent posts