Skip to content

템플릿을 활용한 복잡한 문자열 조합

FastAPI에서는 기본에서 jinja2 템플릿 엔진을 지원합니다. 이외에도 Chemeleon, Mako 등의 템플릿 엔진이 있습니다. jinja2는 장고 템플릿 엔진과 문법이 유사하며, 장고에서도 jinja2를 지원합니다.

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

app = FastAPI()

app.mount("/static", StaticFiles(directory="static"), name="static")
templates = Jinja2Templates(directory="templates")

@app.get("/")
async def root(request: Request):
    context_data = {
        "request": request,
        "title": "홈페이지",
        "user": "홍길동",
    }
    return templates.TemplateResponse(
        "root.html",  # templates/root.html 경로의 템플릿 파일을 찾습니다.
        context_data,
    )

템플릿

base.html

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>FastAPI Blog</title>
<link rel="stylesheet" href="{{ url_for('static', path='css/style.css') }}">
</head>
<body>
    <h1>FastAPI Blog</h1>
    {% block content %}{% endblock %}
    <hr />
    &copy; 2025. 파이썬사랑방.
</body>
</html>

root.html

{% extends "root.html" %}

{% block content %}
    <h2>대문 페이지</h2>
{% endblock %}

Comments