앞으로 플라스크를 사용해야할 듯 싶어서 설치를 하려고 보니까 엥? 이미 설치가 되어 있었다.
기억은 안나는데 내가 사용하는 파이썬이 아나콘다여서 이미 설치가 되어 있는 것인지 아니면 예전에 내가 설치했던 것인지 기억이 나지 않는다.
아나콘다 홈페이지 가서 살펴보니 기본적으로 설치되어 있는 것 같았다. 파이썬3에서 플라스크를 사용하려면 아나콘다 최신버전을 설치하던지 아니면 아나콘다에서 플라스크(flask) 버전을 바꾸는 방법을 사용하면 된다.
아나콘다를 설치함으로서 이렇게 플라스크는 간단히 설치된다.
파이썬으로 어떤 프로젝트를 시작하든 가장 기본이 되는 것은 가상환경 설정이다.
여기서 가상환경은 파이썬 3.3이상의 버전에서는 vevn이라는 도구를 사용하여 설정할 수 있는데 프로젝트 별로 라이브러리의 의존성을 유지하기 위해 필요하다.
왜냐면 프로젝트 별로 사용되는 라이브러리가 다르거나 또는 같은 라이브러리가 필요하더라도 각각 다른 버전을 요구할 수 있기 때문이다. 그래서 동일한 환경에서 여러 프로젝트를 진행하다보면 패키지의 버전을 바꾸는 것은 다른 프로젝트에 영향을 끼치는데 이런 문제는 가상환경을 프로젝트 별로 만들어 해결할 수 있는 것이다.
이미 앞서 여러 포스팅에서 자세한 설명을 했으므로 넘어가기로 하겠다.
- 플라스크로 웹서버 돌리기
기본 환경은 다 설정해 놓았다고 하고 이제 간단한 웹서버를 구동하고 웹페이지를 띄워보도록 하겠다.
위와 같이 파이썬 스크립트를 만든 후 실행을 시킨다.
C:\Flask_Example> python hello.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
위 코드가 만든 웹페이지의 주소가 http://127.0.0.1:5000/ 라는 의미다. 이제 웹브라우저로 위 주소로 접속해 보자.
Hello World!라는 문구가 뜨는데 파이썬 스크립트를 보면 hello라는 함수가 Hello World!라는 문자열을 반환하는 것을 알 수 있다.
여기에서 우리가 알 수 있는 것은 @app.route라는 장식자가 꾸며주는 함수의 결과가 웹페이지에 표시되었다는 것이다.
이번에는 @app.route("/")에서 "/"의 의미를 알아보자.
한번 "/"를 "/a"라고 수정한 후 코드를 재실행해보자.
그리고 아까처럼 접속하면 접속이 안될 것이다. 대신 다음과 같이 주소 끝에 /a라고 하면 접속이 될 것이다.
이렇게 하나하나 알아가는 과정을 마치 처음 산 기계의 동작법을 익히는 것처럼 생각하면 된다. 프레임 웍크는 마치 기계처럼 설계되어 있어서 우리는 이렇게 하면 이렇게 동작하고 저렇게 하면 저렇게 동작한다는 것을 알아가면 되는 것이다.
간단히 정리해보면 플라스크를 사용하는 기본 메뉴얼은 다음과 같다.
① from flask import Flask
flask로 부터 Flask 클래스를 불러들인다.
② app = Flask(__name__)
Flask 클래스의 객체를 생성, 이때 __name__(현재 스크립트의 모듈 이름)을 인수로 넣어준다.
③ @app.route 데코레이터로 URL을 설정해 주고 함수와 연결해준다. 이 외에도 다양한 기능들이 있지만 여기서는 가장 기본적인 것만 살펴본다.
④ app.의 run 메소드를 호출하여 웹서버를 실행한다.
보면 알겠지만 사용법이 아주 간단하고 강력하다.
아마 관심이 있는 분들이라면 파이썬 웹 어플리케이션을 만드는 프레임워크로는 플라스크와 장고가 대표적이라는 것을 알고 있을 것이다.
두 프레임워크는 장단점이 있는데 장고가 좀 더 복잡한 기계라고 생각하면 된다. 그 만큼 다양한 기능을 포함하고 있으므로 덩치가 플라스크에 비해 크지만 한번 익혀놓으면 쉽게 쉽게 찍어낼 수 있다.
반면에 플라스크는 심플하고 가볍다. 가벼운 기계지만 아두이노와 라즈베리파이와 같은 기계라고 생각하면 된다. 핵심 코어가 있고 다른 기능들은 사용자가 직접 선택해서 붙여넣으면 된다.
좀 무겁더라도 좀 더 안정적이고 미리 갖춰진 많은 기능이 있는 장고를 쓸 것인지 아니면 가볍고 사용자가 좀더 커스터마이징 하기 쉬운 플라스크를 쓸 것인지는 사용자의 선택이다.
아직 장고를 사용할지 플라스크를 사용할지 정하지 못했다. 우선 두 가지를 모두 사용해보고 비교 분석해 나가려 한다.
앞으로 플라스크의 기능을 천천히 알아가보도록 하겠다.