본문 바로가기
개발과정/Database

MongoDB 기초 - CRUD Todo

by 태현IT 2024. 3. 31.

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

 

GitHub - shane1003/FASTAPI-MONGO: FASTAPI-MONGO

FASTAPI-MONGO. Contribute to shane1003/FASTAPI-MONGO development by creating an account on GitHub.

github.com

 

반응형

'개발과정 > Database' 카테고리의 다른 글

MongoDB Sample Dataset(1) GET - sample analytics  (0) 2024.04.05