티스토리 뷰

Programming

[Python] Windows에서 Flask 설치하기

forensickelly 2018. 8. 30. 15:00


안녕하세요. ForensicKelly입니다.


이번 포스팅에서는 웹 어플리케이션을 만드는 프레임 워크인 '플라스크(Flask)'를 설치해보겠습니다.



플라스크(Flask)란?



플라스크(Flask)는 파이썬으로 웹 어플리케이션을 만드는 마이크로 웹 프레임워크입니다.


대표적으로 웹 프레임워크에는 Flask, Django, Tornado 등이 있습니다.


그럼 마이크로 프레임워크는 무엇일까요?

마이크로 프레임워크란 핵심 기능만 간결하게 유지하지만, 확장 가능한 것을 목적으로 하는 프레임워크라고 합니다.

즉, 특별한 도구나 라이브러리가 필요 없기 때문에 마이크로 프레임워크라고 부른다고 합니다. 


한국어로 된 플라스크(Flask) 공식 문서에는 플라스크(Flask)는 특정 DB가 정해져 있지 않고, 

제공하는 템플릿 엔진을 변경하는 것도 쉽다고 합니다.



플라스크(Flask) 설치하기



플라스크(Flask)를 시작하려면 먼저 설치를 진행해야 합니다.

Python에 pip가 설치되어 있다면 플라스크(Flask)를  설치하는 것은 매우 간단합니다.



1) 파이썬 설치 후 pip 설치 확인


pip


'pip'가 설치되어 있다면, 명령어를 'cmd(명령 프롬프트)'에 입력하게 되면 [그림 1]과 같이 확인할 수 있습니다.


[그림 1] 'pip' 설치 확인




2) pip를 이용하여 플라스크(Flask) 설치


pip install flask


'pip install flask' 명령어를 'cmd(명령 프롬프트)'에 입력하게 되면 아래 그림과 같이 확인할 수 있습니다.


[그림 2] flask 설치




3) 기본 플라스크(Flask) 어플리케이션 작성


설치가 정상적으로 완료 되었는지 확인하기 위하여 기본 플라스크(Flask) 어플리케이션을 작성 해보겠습니다. 


먼저, 파이썬 파일을 저장할 디렉터리를 하나 생성한 후 'hello_world.py' 파일 안에 아래 코드를 'Notepad++'를 활용하여 작성하였습니다.



from flask import Flask

app = Flask(__name__)


@app.route('/')

def hello_world():

return 'Hello World!'

if __name__ == '__main__':

app.run()



각 코드에 대하여 하나씩 설명을 해보도록 하겠습니다.


from flask import Flask


flask에서 Flask라는 class를 임포트 한 코드입니다. 

이 클래스의 인스턴스가 우리의 WSGI(Web Server Gateway Interface) 어플리케이션이 될 것입니다.



app = Flask(__name__)


Flask라는 클래스의 객체를 생성하고 인자로 __name__ 을 입력합니다. 

[그림 3]과 같이 단일 모듈을 사용한다면, __name__을 인자로 사용해야 합니다. 

왜냐하면 어플리케이션으로 시작되는지 혹은 모듈로 임포트 되는지에 따라 이름이 달라지기 때문입니다.


만약, 패키지를 사용하는 경우라면 일반적으로 패키지 이름으로 작성하는 것이 좋습니다.


때문에 인자로는 모듈이나 패키지의 이름을 넣습니다.

이는 플라스크(Flask)에서 템플릿이나 정적파일을 찾을 때 필요합니다.



@app.route('/')


route( ) 데코레이터를 사용해서 Flask에게 어떤 URL이 우리가 작성한 함수를 실행시키는지 알려줍니다.

즉, 생성한 객체의 route를 설정합니다. 이는 URL을 설정하는 것을 의미합니다.


데코레이터(Decorator)란?
하나의 함수를 취해서 또 다른 함수를 반환하는 함수를 의미합니다.



def hello_world():

     return 'Hello World!'

 

그리고 함수를 생성하고 함수의 기능을 설명합니다.

hello_world()는 사용자 브라우저에 보여줄 메시지를 리턴합니다.



if __name__ == '__main__':

app.run()


최종적으로 run() 함수를 사용하여 개발한 어플리케이션을 로컬 서버로 실행합니다.


소스파일을 모듈이 아닌 python 인터프리터를 이용해서 직접 실행한다면,

if __name__ == '__main__': 은 우리가 실행한 서버가 현재 동작되는 유일한 서버라는 의미입니다.



아래 [그림 3]은 python 인터프리터를 이용해서 직접 실행한 화면입니다.


[그림 3] hello_world.py 실행 후, http://127.0.0.1:5000으로 접속


[그림 3]을 보면 정상적으로 브라우저에 'Hello World!'가 표시됨을 확인할 수 있습니다.


만약 가상머신이나 외부환경에서 이용할 경우,

app.run()을 app.run(host='0.0.0.0')으로 변경하면 외부에서 접근 가능한 것으로 설정됩니다.





출처


1. Flask 설치

- http://doorbw.tistory.com/tag/윈도우에서%20플라스크%20시작하기

- http://snacky.tistory.com/4

- https://flask-docs-kr.readthedocs.io/ko/latest/installation.html#windows-pip-distribute

- https://ko.wikipedia.org/wiki/플라스크_(웹_프레임워크)


2. 데코레이터

- http://whatisthenext.tistory.com/113



공지사항
최근에 올라온 글