Setting
- 일단 대충 코드펜이과 같은 프론트엔드 사이트에서 로그인 화면 HTML을 가져오자.
main
from fastapi import FastAPI, Form
from fastapi.staticfiles import StaticFiles
app = FastAPI()
app.mount("/static", StaticFiles(directory="static"), name="static")
@app.post("/login")
def login(username: str = Form(...), password: str = Form(...)):
return {"username": username}
- StaticFiles를 통해 해당 static 디렉토리의 경로를 주고, directory 이름을 지정해준다.
- mount의 첫번째 인자를 통해 endpoint를 지정해준다. name은 그냥 static
- username, password Query 변수들은 Form 형태의 필수 매개변수가 된다.
- Form을 쓰면 Json 형식이아니라 header가 포함된 살짝 개같은 모습으로 넘어오는데, 나중에 배워보기로한다.
- 파일을 받는 경우 Form 형태로 받기 때문에 일단 이런게 있구나하고 넘어가면 될 듯하다.
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
- 실행 후 docs로 출력이 어떤게 오는지 테스트해보면 된다.