본문으로 바로가기

05. DB 백엔드 연동하기

category Docker 2024. 12. 31. 23:21

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. Docker Compose  (0) 2025.01.03
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