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 |