티스토리 뷰

이제 DB도 준비되었으니 Flask와 DB를 연결하는 작업을 진행하려고 한다.

 

내가 포스팅을 준비하는 동안 Flask 하위 프레임워크 중에 Flask-Restful이라는 녀석이 있음을 알게 되었다. 우리는 Flask를 이용해 Restful API 서버라는 것을 만들 예정이었는데 누가 그 밑 작업을 다 해놓고 Flask-Restful이라는 이름으로 벌써 배포해 놓고 있었다는 사실을 알아버린 거다. 그리고 requirements.txt라는 녀석을 이용해서 우리가 설치할 패키지들을 보다 스마트하게 만들 수 있다는 것을 알게 되었다. 그래서 나는 back-api 안에 있는 모든 내용을 깔끔하게 지워버리고 개발환경을 다시 세팅하기로 했다.

보통 처음 하는 일엔 삽질이 필요한 법이다.

 

이 이미지가 매우 현실적이라는 점을 알아줬으면 좋겠다.

 

미안하지만 개발환경을 다시 만들어 보자.

 

말끔한 개발 폴더.... 다시 시작하자

일단 맨 처음 해줄 것은 가상환경을 만드는 거다. 가상 환경을 위한 패키지는 지난 시간 다 설치했으니까 그냥 명령어만 쭉 치면 된다.

$ virtualenv .env

$ .env\Scripts\activate

이 상태에서 Ctrl + Shift + P를 누르고 "Python: Select Interpreter"를 입력한다.

방금 만들어준 가상환경을 선택해준다.

이제 requirements.txt 라는 파일을 만든다.

그리고 requirements.txt 파일 안에 이렇게 입력해주자.

flask-restful
flask-sqlalchemy

flask-restful은 Flask를 Restful API로 만들어주기 위한 도구라고 생각하면 되고 flask-sqlalchemy는 Flask에서 사용하는 DB 접속 관리자(?) 같은 거라고 보면 된다. ORM이니 뭐니 하면서 어려운 이야기들은 도움이 별로 안 될 것 같고 그냥 아무 도구 없이 DB에 접속해서 데이터를 빼오는 작업은 힘이 드니까 그걸 도와주는 도구라고 생각하면 된다.

암튼 위와같이 두 개의 패키지를 입력해주고 가상 환경 모드의 명령 프롬프트에서 이렇게 입력해준다.

 

$ pip install -r requirements.txt

이렇게 입력하고 엔터를 치면 pip은 방금 우리가 작성한 requirements.txt 에 있는 패키지들을 자동으로 탐색하여 설치해준다. 이런 걸 보고 "의존성 관리"라고 한다.

 

그리고 우리는 두개의 패키지만 설치했지만 이 두 개의 패키지에서 의존하는 필요한 패키지들도 자동으로 알아서 모두 설치하는 것을 확인할 수 있다. 이해하기가 어려우면 내가 과일 가게에 가서 사과를 하나 샀더니 깎아먹으라고 과도도 챙겨주고 담아 먹으라고 쟁반도 챙겨주는 편의를 제공해 줬다는 이야기라고 생각하면 된다.

 

암튼 이렇게 알아서 설치가 마무리 되면 이제 funny-pictures라는 폴더를 하나 만들어서 그 안에 app.py 파일을 만들어 주자.

app.py에 아래와 같이 코딩한다.

 

from flask import Flask
from flask_restful import Resource, Api
from flask_restful import reqparse

app = Flask(__name__)
api = Api(app)

class SayHello(Resource):
    def get(self):
        return {'message': 'hello, world'}

api.add_resource(SayHello, '/hello')

if __name__ == '__main__':
    app.run(debug=True)

이렇게 코딩을 했으면 실행을 한번 해봐야지. 왼쪽의 벌레 금지 버튼을 클릭한다.

그리고 "구성추가"를 클릭한다.

 

바로 이런 선택란이 나오면 괜찮으나 안 나오는 경우 그 옆의 톱니를 클릭해주자. 그리고 여기서 Flask를 선택해준다.

 

위의 이미지 처럼 "funny-pictures/app.py"이라고 우리가 만든 app.py 파일의 위치를 지정해준다.

그러면 이렇게 나오는데 중간에 "FLASK_DEBUG":  "0"이라고 되어 있는 부분을 위의 이미지처럼 "FLASK_DEBUG": "1"이라고 고쳐준다. 이렇게 한 뒤에 F5키를 눌러보자.

 

그러면 창 아래쪽에서 뭐가 막 알아서 동작할거다.

 

이렇게 되었다면 브라우저(기왕이면 크롬 브라우저)에

http://127.0.0.1:5000/hello를 입력해준다.

이렇게 메시지가 나오면 1차 완료다. 이제 DB를 Flask와 연결해주도록 하겠다.

일단 데이터베이스에 "스키마"라고 하는 저장 단위 하나를 만들어줄 거다. 그러기 위해서는 여러 가지 방법이 있는데 MySQL 설치를 하면서 같이 설치된 Workbench라는 프로그램을 이용해서 작업을 할 거다.

 

MySQL Workbench를 실행하면 아래의 이미지처럼 나올 텐데 만약 MySQL Connections 항목에 아무것도 없다면 빨간 사각형 위치의 "+" 버튼을 클릭하자.

Connection Name 입력해주고 "Test Connection" 버튼을 클릭하자.

그러면 암호를 넣고 암호를 저장해주는 게 사용하기 편리하다. 그리고 OK 버튼을 클릭하면

이렇게 접속에 성공했다고 메시지를 띄워준다. OK 버튼을 클릭 클릭해주면 MySQL Connections에 Localhost라는 버튼이 생길 거다. 그걸 클릭해주자.

자 이 화면에서 Schemas 탭을 클릭해준다.

SCHEMAS 패널에서 마우스 오른쪽 클릭하고 "Create Schema" 메뉴를 클릭한다.

위와 같이 입력해주고 "Apply"버튼을 클릭해준다.

그러면 알아서 자동으로 스크립트를 만들어서 위와 같이 보여준다. "Apply" 버튼을 클릭을 한다.

그러면 스크립트가 실행된 결과를 보여준다. 거의 99%는 성공한다. Finish 버튼을 클릭하자.

스키마가 추가된 것을 확인할 수 있다.

 

자, 이제 테이블을 만들고 Flask와 연결해주는 코드를 작성하면 되는데 여기서 한번 끊고 가는 게 좋을 것 같다.

분량 조절 실패로 DB 연결하기 하편으로 다시 돌아오겠다. 안녕!

댓글
댓글쓰기 폼