기본 콘텐츠로 건너뛰기

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

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

네 맞아여, 전 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

from http://cordelia273.space/18 by ccl(A)

댓글

이 블로그의 인기 게시물

Flask 13. pythonanywhere에 배포하기

Flask 13. pythonanywhere에 배포하기 Login: PythonAnywhere It's always a pleasure to hear from you! Ask us a question, or tell us what you love or hate about PythonAnywhere. We'll get back to you over email ASAP. Sorry, there was an error connecting to the server. Please try again in a few moments... www.pythonanywhere.com from http://ohdowon064.tistory.com/124 by ccl(A) rewrite - 2020-03-11 15:54:10

Flask.py #1 설치해보자

Flask.py #1 설치해보자 Flask는 python의 프레임워크라고 할 수 있습니다. Flask를 설치해보자! # 리눅스 -- 접기 이러면 끝 - # pip install flask $ sudo -s 리눅스 같은 경우는 이미 파이썬이 설치가 되어 있을겁니다. # 리눅스 -- 접기 # 맥 -- 접기 이러면 끝 - $ sudo pip install flask 설치가 끝낫으면 Terminal.app 을 열어줍시다. 로 접속하여 파이썬을 설치해 줍니다. [ https://www.python.org/ ] # 맥 -- 접기 # 윈도우 -- 접기 [ https://www.python.org/ ] 로 접속하여 파이썬을 설치해 줍니다. 설치가 끝났으면 [ 고급설정 ] - [ 환경변수 ] - [ 시스템 변수 ] 에서 Path를 찾아줍니다. Path를 찾으셧다면 편집을 누르고 파이썬의 설치 경로와 파이썬 폴더 내의 Script 폴더를 입력해 줍시다. 환경변수까지 끝나셧다면 cmd 창을 키시고 pip install flask 이러면 flask 설치가 끝나게 됩니당 from http://chocoweb.tistory.com/14 by ccl(A) rewrite - 2020-03-07 13:54:54