반응형

 

과거의 파일 이용하여 수정하기

 

=> 포트 번호만 수정함

 

 

daoemp.py

import pymysql

class Daoemp:
    def __init__(self):
        self.con = pymysql.connect(host='localhost', port=3306, user='root',
                              password='python', db='python', charset='utf8')

        self.cur = self.con.cursor(pymysql.cursors.DictCursor)
    
    def selectList(self):
        sql = f"""
            SELECT
                e_id,
                e_name,
                gen,
                addr
            FROM
                emp
        """
        self.cur.execute(sql)
        list = self.cur.fetchall()
        return list
    
    def select(self,e_id):
        sql = f"""
            SELECT
                e_id,
                e_name,
                gen,
                addr
            FROM
                emp
            WHERE
                e_id = '{e_id}'
        """
        self.cur.execute(sql)
        # list = self.cur.fetchall()
        list = self.cur.fetchone()
        return list
        # return list[0] #vo 방식으로 리턴해주기에 권장함

    def insert(self,e_id,e_name,gen,addr):
        sql = f"""
            INSERT INTO 
                emp (e_id, e_name, gen, addr)
            VALUES ('{e_id}','{e_name}','{gen}','{addr}')
        """
        cnt = self.cur.execute(sql)
        self.con.commit() #꼭 해야함
        return cnt
        
    def update(self,e_id,e_name,gen,addr):
        sql = f"""
            UPDATE emp 
            SET
                e_name = '{e_name}',
                gen = '{gen}',
                addr = '{addr}'
            WHERE
                e_id = '{e_id}'
        """
        cnt = self.cur.execute(sql)
        self.con.commit() #꼭 해야함
        return cnt
        
    def delete(self,e_id):
        sql = f"""
            DELETE FROM emp 
            WHERE
                e_id = '{e_id}'
        """
        cnt = self.cur.execute(sql)
        self.con.commit() #꼭 해야함
        return cnt

    def __del__(self):
        self.cur.close()
        self.con.close()
        
if __name__ == '__main__':
    de = Daoemp()
    cnt = de.delete('3')
    print("cnt",cnt)

결과 화면1

 

 

 

+도커 파일

 

 

 

도커 테스트

 

 

docker build -t my-mysql-image .
docker run -d --name my-mysql-container -p 3306:3306 my-mysql-image



docker pull mysql
docker images
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=python -d -p 3306:3306 mysql:latest

 

 

1

 

1. docker_mysql 폴더 오른쪽 마우스 클릭 > Properties 클릭

 

2

 

2. 주소 복사하기

 

3

 

3. cmd 창에서 cd 위치 붙여넣기 > 위의 코드 붙여넣기

 

4

 

4. Docker 실행하여 images 에서 추가된 것 확인

 

 

+ img 확인 방법

상단의 코드 입력

 

 

 

  • 실행 방법
docker run -d -p 5000:5000 flask-app

 

1

 

1. cmd 창에서 위의 코드 입력

 

파일 경로 확인

 

2. 파일 생성

 

Dockerfile

FROM python:3.8-alpine
COPY . /app
WORKDIR /app
RUN pip3 install flask
RUN chmod +x /app/my_flask.py
CMD ["python3", "my_flask.py"]

 

 

my_flask.py

from flask import Flask,request,render_template, redirect, jsonify
from flask.helpers import make_response

app = Flask(__name__)

@app.route('/')
def main():
   return 'Hello Docker'

if __name__ == '__main__':
  app.run(debug=True, port=5000, host='0.0.0.0')

 

3

 

3. 127.0.0.1:5000번으로 진행

 

 

 

MVVM 이용하여 실행하기 (Docker 연결 x)

 

 

 

  • 필수!!

위의 폴더에서 있는 daoemp 파일 열기 > host에 자신의 host 번호 입력 (localhost 입력 시 불가능!)

 

 

 

  • 실행 (마리아DB 사용)

1. 폴더 위치로 cmd 이동

 

2

 

2. 아래 코드 차례대로 cmd에 입력

 

docker build -t flask-app .
docker run -d --name flask-app-container -p 5000:5000  -p 3305:3305 flask-app

 

3

 

3. 크롬 창에 127.0.0.1:5000 입력

 

 

 

MVVM 이용하여 실행하기 (Docker 연결 o)

 

 

  • 실행 (마리아DB 사용)

과거 만들어 놓은 도커 파일을 이용한다.

 

+도커 파일 내용 확인

더보기
# Dockerfile

# MySQL 이미지를 기반으로 이미지 생성
FROM mysql:latest

# MySQL 설정
ENV MYSQL_ROOT_PASSWORD=python
#ENV MYSQL_DATABASE=mysql
#ENV MYSQL_USER=root
#ENV MYSQL_PASSWORD=python

# 포트 설정 (기본 MySQL 포트는 3306)
EXPOSE 3306

 

 

 

1. docker_mysql의 폴더 위치로 cmd 이동

 

docker build -t my-mysql-image .
docker run -d --name my-mysql-container -p 3306:3306 my-mysql-image

 

2. cmd 창에 위의 코드 입력

 

3

 

3. Containers에서 실행되는 것들 확인

 

4

 

4. HeidiSQL에서 데이터 베이스 python 생성 > emp 테이블 생성 > 열 추가 > 저장

 

5

 

5. 데이터 삽입

 

4

 

4. localhost:5000 실행하여 결과 확인

 

 

반응형