1. 가상환경 설정 및 접근
#python 가상환경 설정
python3 -m venv ./mondodb
#가상환경 활성화
source mongodb/bin/activate
#pip 설치
pip3 install pymongo
pip3 install uvicorn
pip3 install "pymongo[srv]"
2. 전체 폴더 구조
반응형
3. 폴더별 설명
- main.py : uvicorn 명령어를 실행하게 하는 파일(uvicorn main:app --reload)
- config : 원하는 database에 접근하게 하는 세팅파일
- client : MongoDB링크 등록(Cluster 접근)
- db : Cluster 내의 database 들 중 어떤 database 가져올 지 확인(todo_db)
- collection(table) : db 중 어떤 collection 가져올 지 명시(todo_collection)
- models : 어떤 형태의 데이터를 넣고 싶은 지 설정(pydantic의 BaseModel을 상속하여 사용)
- Todo라는 이름의 데이터 형태를 사용할 것이며, 내부는 name(string), description(string), complete(boolean)
- routes : Create, Read, Update, Delete를 실행하기 위한 POST, GET, PUT, DELETE Method에 맞는 함수 작성
- router를 명시하고, 해당 router에 알맞는 method와 path 명시("/", "/{id}")
- 비동기로 작동하기 때문에 async def 라는 방식으로 메서드 내 함수 정의
- id의 경우 MongoDB에서 자체적으로 명시("_id")
- update에서 _id로 찾고, "$set" : todo를 변경할 수 있도록 명시
- SwaggerUI로 기본적인 구현이 되어있기 때문에 각 명령어를 실행시킬 수 있음.
- 각 Method는 우측 상단의 Try it out 버튼을 누른 후, execute를 통해서 해당 명령어를 실행시킬 수 있음.
- schema : 각 메서드에 맞는 함수를 작성
- individual_serial : 각각의 데이터를 dictionary 형태로 받을 것이며 어떤 것들을 받을 지 명시
- list_serial : individual_serial에서 명시한 형태로 받을 것이며, GET Method에서 사용
Reference
1. https://youtu.be/QkGqjPFIGCA?si=JjgNR4AmX5DkSd9O
Github
https://github.com/shane1003/FASTAPI-MONGO
반응형
'개발과정 > Database' 카테고리의 다른 글
MongoDB Sample Dataset(1) GET - sample analytics (0) | 2024.04.05 |
---|