리다이렉트는 RedirectResponse를 사용한다.
RedirectResponse("경로") 를 반환하여 경로의 페이지로 클라이언트가 리다이렉트할 수 있도록 한다.
포워딩하기 위해서는 Jinja2가 필요하다.
Anaconda의 경우 Jinja2가 미리 설치되어있다.
from starlette.templating import Jinja2Templates
from starlette.responses import RedirectResponse
from starlette.staticfiles import StaticFiles
from fastapi import FastAPI
import uvicorn
app = FastAPI()
# html 문서가 담겨있는 디렉토리를 지정
templates = Jinja2Templates(directory="templates")
# 정적 문서 경로 지정
app.mount("/static", StaticFiles(directory="static"), name="static")
@app.get("/redirect")
async def redirect():
# starlette.responses의 RedirectResponse를 통해 리다이렉트를 실행한다.
return RedirectResponse("/static/redirect.html")
@app.get("/forward")
async def forward(request: Request):
# Jinja2Templates의 TemplateResponse 를 통해 포워드를 실행한다.
return templates.TemplateResponse("forward.html", context={"request": request})
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port="80")
'Python' 카테고리의 다른 글
파이썬 타입 체크 (0) | 2023.01.06 |
---|---|
파이썬 딕셔너리 (1) | 2023.01.05 |
html에서 파이썬 변수 사용하기 (0) | 2023.01.05 |
FastAPI get방식, post방식 (0) | 2023.01.05 |
파이썬 FastAPI 첫 시작 (1) | 2023.01.04 |