FastAPI tips3 Jinja2 템플릿 활용 1) style.css 파일 적용from fastapi.staticfiles import StaticFilesfrom fastapi import FastAPIapp = FastAPI()app.mount("/static", StaticFiles(directory="static"), name="static")FastAPI가 초기화된 위치를 기준으로 /static 폴더의 경로를 설정한다.html 코드 내에서 아래와 같이 호출이 가능하다. 2) Jinja2Template 예제from pathlib import Pathfrom fastapi.templating import Jinja2Templatesfrom fastapi.responses import HTMLResponsefrom fastapi import AP.. 2024. 5. 8. 엑셀 다운로드 (Pandas, Workbook) [Pandas 활용]from datetime import datetimefrom io import BytesIOimport pandas as pdimport openpyxlfrom fastapi.responses import StreamingResponsedef make_excel_file(cols: list, rows: list) -> StreamingResponse: buffer = BytesIO() df = pd.DataFrame(data=[rows], columns=cols) file_name = f"example_{datetime.now().date()}" encoded_file_name = file_name.encode('utf-8').decode('cp949') #.. 2024. 5. 8. Middleware 커스텀해서 사용하기 from fastapi import FastAPIfrom middlewares import CustomMiddlewareapp = FastAPI()app.add_middleware(CustomMiddleware) # 미들웨어 추가middlewares.pyfrom starlette.types import ASGIApp, Receive, Scope, Sendclass CustomMiddleware: def __init__(self, app: ASGIApp) -> None: self.app = app async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None: # do something await.. 2024. 5. 3. 이전 1 다음