세상의 모든 지식

[Flask] Python 기반 꿀잼 웹 프레임워크 본문

Web/Flask

[Flask] Python 기반 꿀잼 웹 프레임워크

JuniorEinstein 2018.03.12 21:07

네 맞아여, 전 PHP 개발자입니다.


근데! PHP와 함께해온 3년의 시간들이 무안해질만큼 꿀잼 프레임워크를 찾았는데!


그게 바로 Flask였습니다.


플라스크(Flask)는?

파이썬(Python) 기반의 '마이크로(Micro) 웹 프레임워크'입니다.


여기서 '마이크로(Micro)'라는 것은 '작고, 기능이 적다'는 뜻이 아니라, '핵심 기능만 간결하게 유지하면서 확장 가능한 것'이라는 의미입니다.


그렇기 때문에 플라스크는 엄청 가볍고 (사실 있는게 없다고 할 정도로) 자유도가 높습니다. (하나부터 열까지 내가 다 만들어야... 하)


하지만 그만큼! 엄청 꿀잼 프레임워크니까 저와 함께 시작해 보도록 하죠!


플라스크 한글 메뉴얼은 http://flask-docs-kr.readthedocs.io/ko/latest에 있습니다.



플라스크 개발 환경 구축하기

플라스크는 기본적으로 파이썬 3버전을 지원하지 않습니다.


그 이유는! 플라스크가 의존하고 있는 Werkzeug가 아직 파이썬 3 버전을 지원하지 않기 때문입니다!


그래도! 파이썬 3으로 개발해서 파이썬 2.7 버전으로 코드를 바꿔줄 수 있는 라이브러리들이 있습니다.

그래도 일단은 파이썬 2.7 버전을 이용해서 시작해보도록 하겠습니다.


파이썬 설치하기

맥 유저 같은 경우는 기본적으로 파이썬 2.7 버전이 설치되어 있습니다.


윈도우 유저는 파이썬 사이트에서 파이썬 2.7 버전을 다운로드 받아서 설치해야 합니다.


파이썬 다운로드 : https://www.python.org/downloads/


파이썬 2.7.14 버전을 다운로드 해 설치합니다.


그리구 맥은 그냥 터미널창에서 'python' 명령어를 통해서 python CLI를 실행 시킬 수 있지만, 윈도우는 환경 변수 설정을 해줘야 합니다. (이게 한번 꼬이면 정말 빡쳐요)


윈도우 환경 변수 설정 방법은 http://doocong.com/python/python-pip-install/을 참고해 주시면 좋겠습니다.


pip 설치하기

그 다음은 파이썬 패키지 관리자 도구인 'pip'를 설치해야 합니다.


윈도우 같은 경우는 위의 링크에 pip 설치 방법까지 나와 있습니다.


맥 유저는 터미널에 아래의 명령어를 입력해 주시면 됩니다.


1
$ sudo easy_install pip
cs


Virtualenv 설치하기

'Virtualenv'는 나의 컴퓨터 환경에서 다른 공간을 할당하는(?) 일종의 가상 머신입니다. 가상 머신이라고 하기엔 작은 규모고, 같은 운영체제를 기반으로 하지만, python 프로젝트가 내 컴퓨터의 다른 요소들과 상호작용하지 않게 도와줍니다.


우리는 새로운 플라스크 프로젝트를 virtualenv 안에다 생성할 것입니다.


pip를 이용해서 설치해 봅시다.


윈도우는 CMD, 맥은 terminal에 다음 명령어를 입력합니다.


1
$ sudo pip install virtualenv
cs


이 명령어는 우리의 컴퓨터에 virtualenv를 설치해 줍니다.


우리는 virtualenv를 통해서 가상의 공간을 할당하고, 가상 공간을 끄고 킬 수 있습니다.


새로운 프로젝트 이름을 'hello'라고 해봅시다.


hello라는 폴더를 생성하고, hello 폴더로 이동합시다!


1
2
$ mkdir hello
$ cd hello
cs


그러면 이제 본격적으로 프로젝트를 시작하기 위해 가상환경을 생성해 줄겁니다. 가상 환경의 이름은 일단 'venv'로 해두죠.


1
$ virtualenv venv
cs


그러면 hello 폴더 안에 venv라는 폴더가 생성되는 것을 확인할 수 있습니다.


venv는 가상환경과 관련된 정보를 담고 있습니다.


가상환경을 실행하기 위해서는 venv/bin/ 폴더 안에 있는 activate를 실행 시켜야 합니다.


1
$ source venv/bin/activate
cs


윈도우

1
$ venv\scripts\activate
cs


그러면 다음과 같이 우리가 가상 환경을 사용하고 있다는 표시가 뜨게 됩니다.


1
(venv) $ 
cs


그러면 가상 환경 구축까지 끝났습니다!


flask 설치하기

우리는 가상환경이 켜진 상태에서 플라스크를 설치할 것입니다.


가상환경 안에서 설치된 패키지들은 실제 컴퓨터 환경에서 사용할 수 없습니다.


즉, 가상환경이 활성화 되어야만 flask를 사용할 수 있습니다.


pip를 이용해 flask를 설치해 줍니다.


1
(venv) $ sudo pip install Flask
cs


그러면 플라스크 설치를 완료 했습니다!



웹 서버 구동

그럼 이제 간단하게 서버를 시동해보도록 하죠.


일단 hello 폴더에 hello.py 파일을 생성합니다.


그 안에는 다음과 같이 코드를 작성합니다!


1
2
3
4
5
6
from flask import Flask
app = Flask(__name__)
 
@app.route('/')
def hello():
    return "hello!";
cs


1번줄 : flask 패키지로부터 Flask 모듈을 불러옵니다.

2번줄 : app이라는 변수에 플라스크 서버 객체를 할당합니다.

4번줄 : '/'이라는 url의 요청에 대한 처리를 할것이라고 지정합니다.

5번줄 : '/'이라는 url로 요청을 받으면, hello()라는 함수를 실행합니다.

6번줄 : hello()라는 함수는 "hello!"라는 응답을 줍니다.


그러면 실행해 봅시다!


1
(venv) $ export FLASK_APP=hello.py
cs


플라스크 웹 서버가 hello.py를 기본 앱으로 설정하라고 명령합니다.


1
(venv) $ flask run
cs


서버를 실행 시킵니다.


그러면 플라스크 서버가 127.0.0.1:5000에 실행되었다고 알려줍니다.



<아주 조촐하지만 성공입니다! 분명 성공이에요!!>


성공입니다!!!


마침

혹시 오류가 나거나 궁금한 사항이 있으면 언제든지 질문 주세요!


참고 : http://flask.pocoo.org/docs/0.12/quickstart


'Web > Flask' 카테고리의 다른 글

[Flask] Python 기반 꿀잼 웹 프레임워크  (6) 2018.03.12
6 Comments
  • 프로필사진 Favicon of https://simpas.tistory.com BlogIcon simpas 2018.03.14 15:04 신고 virtualenv가 필요한 정확한 이유가 먼가요?? 너무너무 궁금해요오
  • 프로필사진 Favicon of https://cordelia273.space BlogIcon JuniorEinstein 2018.03.14 17:30 신고 파이썬 프로젝트들은 패키지에 대한 의존도가 높아서 virtualenv를 안 쓰면 컴퓨터 내에 있는 환경 변수나 설정 등과 섞여서 프로젝트가 제대로 구동되지 않을 수 있습니다.
    게다가 여러개의 flask 프로젝트를 작업하는 경우에 심각한 문제가 될 수 있죠! 그런 이유에서 가상환경을 사용해서 프로젝트들의 독립성을 유지하는 것입니다, 질문 주셔서 감사합니다!
  • 프로필사진 구독자 2018.03.21 08:52 신고 연재해줘요
  • 프로필사진 Favicon of https://cordelia273.space BlogIcon JuniorEinstein 2018.03.21 09:29 신고 넵!
  • 프로필사진 k 2019.02.13 18:02 신고 좋은 정보 감사해요 쉽게 나와있어 차근차근 따라했네요!
    근데 거의 마지막 부분에서 문제가 발생했는데,
    hello.py 파일 생성 후 (venv) $ export FLASK_APP=hello.py 실행하게 되면 오류가 뜨네요ㅠㅠ
    'export'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 라고 드고 그이상 진행할수가 없어서 구글링도 해보고 윈도우 환경 변수 설정을 다시 해봐도 마찬가지네요ㅠ 어떻게 하면 좋을까요?
  • 프로필사진 Favicon of https://cordelia273.space BlogIcon JuniorEinstein 2019.02.15 03:11 신고 우선 제 글을 읽어주셔서 감사합니다!

    아마 k님의 개발 환경이 윈도우라서 발생하는 문제인 것 같습니다. 윈도우의 CMD에는 기본적으로 export 명령어를 사용할 수 없기 때문에 아래의 방법을 사용하시면 될 것 같습니다.

    > set FLASK_APP=hello
    > flask run

    위의 명령어는 플라스크 공식 문서에서 참조했습니다!
    http://flask.pocoo.org/docs/dev/cli/
댓글쓰기 폼