FastAPI 프로젝트 진행(시작, HTML 렌더링) - 74

2023. 1. 25. 14:47·Develop/FastAPI
728x90
SMALL

프로젝트 디렉터리 구조

fastapi
todoapp
main.py

database.py

models.py

todos.db
templates routers
home.html auth.py

todos.py

 

템플릿 디렉터리 가져오기, HTML 파일 렌더링

 

 

 

 

 

 

1. todoapp 디렉터리 하위에 templates 디렉터리 생성

2. templates 디렉터리 하위에 home.html 생성

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>FastAPI</title>
</head>
<body>
	<h1>Welcome to this FastAPI course!</h1>
</body>
</html>

 

 

 

3. 라이브러리 설치

aiofiles
File Input/Output를 비동기로 할 수 있는 라이브러리

 

jinja2
python에서 가장 많이 사용되는 템플릿 엔진
※템플릿 엔진
- 파이썬 문법(조건, 반복문, 변수)을 간략한 표현으로 데이터를 가공하여 웹페이지에 보임
- 서버에서 받아온 데이터를 보여줄 중간 매체
- 재사용성 용이, 유지보수 용이, 코드 간결성
pip install aiofiles

pip install jinja2

 

 

4. todos.py 수정 및 추가

import sys
sys.path.append("..")
from fastapi import Depends, HTTPException, APIRouter, Request
import models
from database import engine, SessionLocal

from fastapi.responses import HTMLResponse
#템플릿 엔진 삽입
from fastapi.templating import Jinja2Templates


router = APIRouter(
    prefix="/todos",
    tags=['todos'],
    responses={404: {"description": "Not found"}}
)

models.Base.metadata.create_all(bind=engine)

#템플릿 변수에 templates 디렉터리 추가
templates = Jinja2Templates(directory="templates")


def get_db():
    try:
        db = SessionLocal()
        yield db
    finally:
        db.close()

#templates 디렉터리의 home.html 호출
@router.get("/test")
async def test(request: Request):
    return templates.TemplateResponse("home.html", {"request":request})

 

 

5. test URL로 웹 접속

http://127.0.0.1:8000/todos/test

 

728x90
SMALL
저작자표시 비영리 변경금지 (새창열림)

'Develop > FastAPI' 카테고리의 다른 글

FastAPI 프로젝트 진행(bootstrap, js 파일 추가) - 76  (0) 2023.01.25
FastAPI 프로젝트 진행(CSS 및 static 폴더 구성) - 75  (0) 2023.01.25
FastAPI Alembic 추가 실습하기 - 73  (0) 2023.01.24
FastAPI 테이블 관계 형성하기- 72  (0) 2023.01.24
FastAPI Alembic new 테이블 및 외래키 생성(Upgrade / Downgrade) - 71  (0) 2023.01.22
'Develop/FastAPI' 카테고리의 다른 글
  • FastAPI 프로젝트 진행(bootstrap, js 파일 추가) - 76
  • FastAPI 프로젝트 진행(CSS 및 static 폴더 구성) - 75
  • FastAPI Alembic 추가 실습하기 - 73
  • FastAPI 테이블 관계 형성하기- 72
동석해요
동석해요
공부하고 싶은게 많은, 사소한 IT 지식들 공유
    250x250
  • 동석해요
    개발로 자기계발
    동석해요
  • 전체
    오늘
    어제
    • 분류 전체보기 (226)
      • Develop (126)
        • 기초지식 (12)
        • FastAPI (102)
        • Django (11)
      • Database & Data (62)
        • 기초지식 (16)
        • MySQL (29)
        • PostgreSQL (8)
        • 데이터 분석 (9)
      • 인공지능 (11)
        • PyTorch (9)
      • Cloud (8)
        • AWS (4)
        • GCP (2)
      • 버그처리 (14)
      • 회고 & 일상 (5)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
동석해요
FastAPI 프로젝트 진행(시작, HTML 렌더링) - 74
상단으로

티스토리툴바