본문 바로가기

Python & Django & Flask

[Flask] Flask 설치 및 SQLAlchemy + MySQL Example

grails 테스트 후 점심시간 + 여러 회의시간 사이사이 짬짬히 flask를 가지고... SQLAlchemy + MySQL을 사용해서 간단한 도메인 클래스로부터 테이블 생성하고 샘플 데이터 insert 까지만 테스트를 해보았다.

오늘 오전에 키튼님, 프리츠님으로부터 grail보다 ror이 낫다. flask 한번 해보라. 라는 조언을 듣고.. 이왕이면 루비보다는 파이썬이라는 생각으로.... 도전!


http://flask.pocoo.org/

http://flask.pocoo.org/docs/patterns/sqlalchemy/


파이썬이 익숙하지 않다보니... 어렵다.. 쩝...

일단, Mac OSX를 기본으로 python 2.7이 설치되어 있고, 맥용 MySQL이 설치되어 있는 상태에서 진행하였다.


1. virtualenv 설치

 - python 같은 경우는 라이브러리 설치 혹은 설정이 바뀔경우 전역적으로 사용하는 부분이 바뀌어버리기 때문에 이런 상황에서 발생하는 사이드이펙트를 막기위해서 가상환경을 적용하여 사용하는듯하다. 이 프로그램을 활용하면 웹어플리케이션별로 가상으로 자기만의 환경을 가지도록 설정 할 수 있다. 설치 방법은 아래와 같다.

sudo easy_install virtualenv


2. Flask 설치

sudo pip install Flask


3. 프로젝트 디렉토리 생성

 - 어플리케이션 (여기서는 테스트 어플리케이션)을 만들 디렉토리를 생성한다. 아무곳에 생성해도 상관없다.

나는 아래의 디렉토리에 생성하였다.

/Users/need4spd/Programming/python/flask/workspace/flaskr


4. virtualenv 설치 및 적용

 - 위 프로젝트 디렉토리로 이동하여 아래의 명령어를 실행한다.

virtualenv venv

그러면, 디렉토리안에 venv라는 디렉토리가 설치되었을 것이다. 이 상태에서 아래의 명령어로 해당 프로젝트에 가상환경을 적용한다.

. venv/bin/activate

정상적으로 적용이되면 prompt앞에 (venv)라고 표시가 되어, 가상환경 상태인지를 알 수 있게 된다. 가상환경해제는 "deactivate"만 입력하면 된다. 이후부터는 쭉 가상환경이 적용된 상태이다.


5. SQLAlchemy 설치

 - SQLAlchemy를 설치한다.

sudo easy_install SQLAlchemy


6. clang 설치

 - Xcode를 실행 후 preference -> download에 들어가 command line tool을 설치한다.


7. mysql 모듈을 설치한다.

sudo easy_install mysql-python


8. .bash_profile에 아래의 변수를 추가하고 export한다.

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH


이제 환경은 준비가 끝났다.


sample code를 작성해보자. sample code는... db를 연결하고, domain으로부터 table을 만들고 샘플 데이터를 insert하는 형태가 된다.


models.py를 보면 User라는 이름의 도메인을 하나 정의한것을 볼 수 있다.

database.py가 db connection을 얻어오는 역할을 하며, init_db 메서드에서 models.py를 import하여 table을 생성한다.

sqlalchemy_orm.py가 데이터를 insert하는 예제코드이다.




이제 이걸 이용해서... webapplication crud 테스트를 한번.....

걍 내친김에 RoR까지 한번 봐야겠다.. Django는 스킵. 이히히.. 근데 어렵다 이건.. 좀.. 눈에 잘 안들어와...

원서 보듯이 펴놓고.. 뚫어지게 봐야겠다..