Kodeloka
  1. Kodeloka
  2. Kelas FastAPI
  3. Materi

Dasar & Frontend ยท Modul 2 dari 24

HTML Frontend & Jinja2 Templates

Menyajikan tampilan HTML interaktif menggunakan Jinja2Templates dan menyajikan berkas statis (CSS/JS) dengan StaticFiles.

๐ŸŽฏ Poin-Poin Utama Modul Ini:
  • Mengintegrasikan Jinja2 template engine untuk Full-Stack Web Development
  • Menyajikan berkas statis gambar, CSS, dan JavaScript dengan app.mount('/static', ...)
  • Mengirimkan variabel dari Python ke template HTML via TemplateResponse

๐ŸŒ Full-Stack HTML Rendering dengan Jinja2

Dalam Seri Tutorial Corey Schafer Part 2, selain berfungsi sebagai pembuat REST API murni, FastAPI juga dapat digunakan untuk menyajikan halaman web Full-Stack lengkap dengan tampilan HTML yang di-render di sisi server menggunakan Jinja2 Templates.

โš™๏ธ Menyiapkan Static Files & Template Engine

Untuk menyajikan gambar, file CSS stylesheet, atau script JS client ke browser, kita meng-import StaticFiles dan memetakan folder fisik lokal ke URL path virtual.

๐Ÿ’ป Kode Rendering Template Jinja2

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

app = FastAPI()

# Mount folder static fisik ke URL /static
app.mount("/static", StaticFiles(directory="static"), name="static")

# Inisialisasi folder template
templates = Jinja2Templates(directory="templates")

@app.get("/posts")
def list_posts(request: Request):
    posts = [
        {"title": "FastAPI Getting Started", "author": "Corey Schafer"},
        {"title": "Pydantic Schemas Guide", "author": "Eko Khannedy"}
    ]
    return templates.TemplateResponse("posts.html", {"request": request, "posts": posts})