티스토리 뷰
반응형
FastAPI 시작하기
시작하기에 앞서, 가장 좋은 시작방법은 도큐먼트를 읽는 것 이다. https://fastapi.tiangolo.com/ko/.
1 uvicorn run .. 명령어로 uvicorn을 시작할 수 있지만, 명령어를 main.py에 작성해두는 것이 좋다.
2 개발모드에서는 reload True를 주면 코드 변경에 따라, 다시 빌드해주는 watch모드를 킬 수 있다. watch 모드를 키려면 해당 app attribute가 있는 파일을 문자열로 제공해줘야한다. (python 3.10, uvicorn 0.18.2 기준)
3 '/' 경로에서 index.html을 별도 명시적 경로 없이 제공해주기 위해선, html 옵션을 켜줘야한다.
4 cors 등의 헤더 전처리는 middleware 패턴을 활용한 starlette Middleware 객체를 활용해도 좋지만, fastapi서 제공하는 데코레이터를 활용하여 커스텀하게 바꾸어도 좋다고 생각한다.
import typing
import logging
import uvicorn
from os.path import abspath
import pathlib as path
from starlette.staticfiles import StaticFiles
from fastapi import FastAPI, Request, Response
app = FastAPI(title='my-API', version='0.0.1', docs_url=None, redoc_url=None)
@app.middleware('http')
async def add_cors(request: Request, call_next):
response: Response = await call_next(request)
response.headers['Access-Control-Allow-Origin'] = '*'
return response
static_folder = abspath(path.Path(path.Path(__file__).parent.absolute() ,'..', 'static'))
app.mount("/", StaticFiles(directory="../static", html=True), name='static')
if __name__ == '__main__':
uvicorn.run("main:app",host='0.0.0.0', port=8000, reload=True)
gist_github보러가기 https://gist.github.com/ingyeoking13/8b88e618a8b963a9d3448fff4bc1ae1f
starting fastapi
starting fastapi. GitHub Gist: instantly share code, notes, and snippets.
gist.github.com
간단하게 정리해보았다.
반응형
'개발이야기' 카테고리의 다른 글
git cherry-pick 없이 conflict 없이 merge하기 (FEAT. cherry pick이 더 유용) (0) | 2023.03.01 |
---|---|
이터레이터, 제너레이터, 코루틴 (0) | 2022.10.29 |
Firebase, github action과 브랜치별 firebase 프로젝트 관리 (0) | 2022.10.21 |
diff 알고리즘 에 관하여 (0) | 2021.12.27 |
필요로 인해 공부하는 CS - DID, TODO 들 목록 (0) | 2021.04.05 |
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Simulation
- Grafana
- rosen
- 아레나시뮬레이션
- 엄청난 인내심과 시뮬레이션을 위한 아레나 툴
- paul wilton
- 백준
- 자바스크립트 예제
- javascript
- arena simulation
- 아레나
- 최단경로 알고리즘
- 항해99
- 명제논리
- 아레나 시뮬레이션
- 이산수학
- 시뮬레이션
- 그라파나
- 이산 수학
- Propositional and Predicate Logic
- grafana cloud
- Arena
- beginning javascript
- 데이터 중심 애플리케이션 설계
- 대규모 시스템 설계 기초
- Discrete Mathematics
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- 자바스크립트
- 로젠
- flutter
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함