FastAPI - DB 연동

2023. 7. 31. 09:42개발/Python

728x90
반응형

설치

필수 설치 요소

  • sqlalchemy 설치 (docs)
pip3 install sqlalchemy # ORM을 통해 DB 쿼리문을 작성하기
pip3 install python-dotenv # DB관련 정보 입력시 환경변수 등록을 위한 설치

웹서버 구조

└── app
    ├── __init__.py
    ├── apis
    │   ├── __init__.py
    │   └── test.py
    ├── core
    │   ├── __init__.py
    │   └── config.py
    ├── crud
    │   ├── __init__.py
    │   └── crud_test.py
    ├── db
    │   ├── __init__.py
    │   ├── connection.py
    │   ├── models
    │   │   ├── __init__.py
    │   │   └── test_model.py
    │   └── session.py
    ├── main.py
    └── routes
        ├── __init__.py
        └── test.py
  • apis : 메인 로직을 작성하는 부분 (MVC 패턴의 Controller와 같은 역할)
  • core : core의 config.py에는 DB URL을 반환하는 클래스가 포함되어 있다.
  • crud : ORM 형식으로 DB 쿼리문이 작성된 파일들이 모여있는 폴더
  • db : DB 연결, DB 세션 관리, 모델들의 정의한 폴더
  • routes : URL 경로에 따라 API 함수들을 나눠주는 역할
  • main.py : FastAPI를 샐행하고 routes 폴더들의 다른 라우트들을 불러와 포함시키는 역할
  • init.py : 해당 폴더가 패키지의 일부라는 것을 나타낸다. python 3.3버전 이후부터는 없어도 되지만 이전 버전은 필수 존재해야한다.

PyODBC

  • python36-devel 패키지 설치
sudo yum install python36-devel

참고

  • mysql은 https://phsun102.tistory.com/63?category=891189 참고 하였고 Session 으로 데이터를 관리
  • pyodbc는 dao를 만들어서 session을 사용하지 않고 직접연결하였다.
    • sqlalchemy를 사용하지 않았다.
    • Session을 쓰지 않는것이 비정상인지는 글쓴이는 판단하기 어렵다.
    • 구조도 변경
└── app
    ├── __init__.py
    ├── apis
    │   ├── __init__.py
    │   └── test.py
    ├── core
    │   ├── __init__.py
    │   └── config.py
    ├── crud
    │   ├── __init__.py
    │   └── crud_test.py
    ├── db
    │   ├── __init__.py
    │   └── dao.py
    ├── main.py
    └── routes
        ├── __init__.py
        └── test.py

테스트

  • 상품 정보의 수량을 출력하는 테스트를 진행

💡 출처 : https://phsun102.tistory.com/62?category=891189,(https://phsun102.tistory.com/63?category=891189) https://ulfrid.github.io/python/python-sqlalchemy/,
https://docs.sqlalchemy.org/en/14/core/type_basics.html
 

SQLAlchemy 그것이 알고싶다

sqlalchemy는? python에서 사용가능한 ORM(Object-relational maping)이다. ORM은 말그대로 객체(Object)와 관계(Relation)를 연결해주는것이다. 데이터베이스의 데이터를 <—매핑—> Object필드 장점 객체 지향적인

ulfrid.github.io

 

The Type Hierarchy — SQLAlchemy 1.4 Documentation

The Type Hierarchy SQLAlchemy provides abstractions for most common database data types, as well as several techniques for customization of datatypes. Database types are represented using Python classes, all of which ultimately extend from the base type cl

docs.sqlalchemy.org

 

Python - FastAPI 프레임워크란?

FastAPI란? 파이썬 3.6 버전부터 제공되는 트랜디하고 높은 성능을 가진 파이썬 프레임워크. FastAPI라는 이름처럼 빠르게 개발을 진행할 수 있다. 별도의 구성이나 설치의 필요없이 바로 사용할 수

phsun102.tistory.com

 

728x90
반응형

'개발 > Python' 카테고리의 다른 글

Python - Puppeteer vs Selenium vs Playwright  (0) 2023.08.01
FastAPI - Redis 연동  (0) 2023.07.31
FastAPI - 설치  (0) 2023.07.31
Python - Uvicorn  (0) 2023.07.31
Python - FastAPI  (0) 2023.07.31