본문으로 바로가기

05. DB 백엔드 연동하기

category Docker 3개월 전

Flask의  ORM인 SQL ARCHEMY를 세팅한다.

각종 필요한 패키지를 받고 코드를 작성한다.

어차피 로컬에서만 쓸 DB니 쿨하게 비밀번호도 공개한다.

from flask import Flask,request
from flask_sqlalchemy import SQLAlchemy
# Flask 애플리케이션 설정
app = Flask(__name__)

# MariaDB 연결 URL
# mysql+pymysql://<username>:<password>@<host>:<port>/<database>
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:1111@localhost:3306/sutorage'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False  # 트래킹을 비활성화

# SQLAlchemy 객체 생성
db = SQLAlchemy(app)


# 모델 정의 (User 테이블)
class FileStorage(db.Model):
    __tablename__ = 't_fs'
    id = db.Column(db.String(255), primary_key=True)
    name = db.Column(db.String(255), nullable=False)
    state = db.Column(db.String(255), nullable=False)


# 데이터베이스에 새로운 사용자 추가하는 함수
def insert(id, name, state):
    entity = FileStorage(id = id, name=name, state=state)
    db.session.add(entity)  # 세션에 추가
    db.session.commit()  # 커밋하여 데이터베이스에 저장

@app.route('/')
def home():
    return '안녕하세요? 플라스크입니다?'

@app.route('/fs', methods=["POST"])
def create():
    data = request.get_json()

    id = data['id']
    name = data['name']
    state = data['state']
    insert(id=id, name=name, state=state)
if __name__ == '__main__':
    app.run(debug=True)

 

MVC패턴은 지키지 않은채 실습용으로 그냥 app.py에 코드를 다 때려 놓았다.

이제 요청을 curl로 보내보자.

curl -X POST http://localhost:5000/fs -H "Content-Type: application/json" -d '{"id":"hello", "name":"suhyeok", "state":"ACTIVE"}'

 

이제 도커 컨테이너에 올라가져있는 mariaDB컨테이너에서 쿼리를 날려 확인하기 위해 접근한다.

 

sudo docker exec -it {컨테이너명} mariadb -uroot -p

 

쿼리를 날려 확인해보자.

 

 

제대로 들어갔다 !!

 

이것으로 도커로 올린 DB와 로컬 백엔드 서버 연동을 완료하였다.

Docker카테고리의 다른글

07. Dockerfile  (1) 2025.01.21
06. Docker Volume  (2) 2025.01.01
04. DB 도커에 올리기  (1) 2024.12.31
03. 백엔드 서버 세팅  (3) 2024.12.31
02. Docker로 nginx 서버 올려보기  (0) 2024.12.31