1장 플라스크 개발준비

JINSOO PARK·2021년 10월 5일
0

점프 투 플라스크

목록 보기
1/2

1.플라스크란?

"마이크로 웹 프레임워크" 라고 불리는데,
프레임워크를 간결하게 유지하고 확장할 수 있도록 만들었다는 뜻이다.
플라스크는 폼, 데이터베이스를 처리하는 기능이 없다. 그렇기 때문에 확장 모듈을 통해 이를 보완한다.
플라스크는 다른 웹 프레임워크에 비해 덩치가 작고 자유도가 높다. 규칙도 복잡하지 않다.

*프레임워크란?
"소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"

설계의 기반이 되는 부분을 기술한 확장 가능한 기반 코드와 사용자가 이 코드를 자기 입맛대로 확장하는 데 필요한 라이브러리이 두 가지 요소가 통합되어 제공되는 형태를 말하며, 사용자가 이를 이용해 일정 수준 이상의 품질을 보장받는 코드를 비교적 빠른 시간에 완성 및 유지 보수할 수 있는 환경을 제공해주는 솔루션이다.

링크텍스트

*라이브러리 vs 프레임워크

라이브러리(정보의 저장소)

  • 부품이 되는 소프트웨어의 집합
  • 작은 기능들을 함수 단위로 만들어 제공
  • 집을 만드는 공구로 기능만 제공
  • 가져다 사용하는 개념

프레임워크(뼈대,틀)

  • 소프트웨어의 형식을 제공
  • 사용 규칙이 정해져 있음
  • 이미 완성된 집을 채워나가는 느낌
  • 제공된 틀안으로 들어가 규칙을 지켜가며 사용하는 것

링크텍스트

2. 가상환경 만들기

파이썬 가상 환경은 파이썬 프로젝트를 진행할 때 독립된 환경을 만들어 주는 도구이다.
개발자가 2개의 파이썬 프로젝트를 진행하려고 할때 각각의 프로젝트가 요구하는 버전이 다를 수 있다.
그럴 경우 하나의 데스크톱에 서로 다른 버전의 파이썬을 설치해야 하는 문제가 생길 수 있다.
이러한 개발 환경은 구축하기도 어렵고 사용하기도 힘듦.
이런 경우 프로젝트1을 위해 가상환경1을 만들어 파이썬 2.7 버전을 설치하고 프로젝트2를 위해 가상환경2를 만들어 파이썬 3.8버전을 설치해서 사용 할 수 있다.

  • 가상환경 만들기
C:\venvs> python -m venv myproject

python -m venv 는 가상환경을 만드는 모듈 venv를 사용한다는 의미이고,
myproject 는 가상환경의 이름을 나타낸다.

  • 가상환경에 진입하기
    가상 환경에 진입하려면 앞서 생성한 디렉토리에 있는 Scripts 디렉토리의 activate라는 명령을 수행 해야 한다.
C:\venvs> cd C:\venvs\myproject\Scripts
C:\venvs\myproject\Scripts> activate
(myproject) C:\venvs\myproject\Scripts>
  • 현재 진입한 가상 환경에서 벗어나기
    가상환경에 진입한 상태에서 deactivate를 입력
(myproject) C:\venvs\myproject\Scripts> deactivate
C:\venvs\myproject\Scripts>

3. 가상 환경에서 플라스크 설치하기

가상 환경에 진입한 상태에서 명령어 입력

pip install Flask

*만약 최신버전이 아닐경우

python -m pip install --upgrade pip

위의 명령어를 입력해 pip을 최신 버전으로 설치한다.

*pip은 파이썬 라이브러리를 설치하고 관리해 주는 파이썬 도구이다.

4. 프로젝트 디렉토리 생성하기

1) 프로젝트 루트 디렉토리 생성

여러개의 프로젝트가 될 수 있으므로 프로젝트를 모아 둘 프로젝트 루트 디렉토리 생성은 필수이다.

C:\> mkdir projects
C:\> cd projects

2) 프로젝트 루트 디렉토리 안에서 가상 환경에 진입하기

C:\projects> C:\venvs\myproject\Scripts\activate
(myproject) C:\projects>

*반드시 프로젝트 루트 디렉토리 안에서 명령어를 입력

3) 플라스크 프로젝트를 담을 디렉터리 생성하고 이동하기

(myproject) C:\projects> mkdir myproject
(myproject) C:\projects> cd myproject
(myproject) C:\projects\myproject>

5. 배치 파일로 가상 환경에 간단히 진입하기

가상 환경에 진입하려면 C:\venvs\myproject\Scripts 로가서 activate 명령을 수행해야는데 매번하기 힘드니 배치 파일을 생성하여 가상환경에 간단히 진입할 수 있다.

1) 배치 파일 생성

venvs 디렉토리에 메모장을 이용해 myproject.cmd 파일을 만들고 아래와같은 내용을 작성한다.

@echo off
cd c:/projects/myproject
c:/venvs/myproject/scripts/activate

*해당 디렉토리로 이동한뒤 activate 명령 수행

2) 배치 파일 위치를 PATH 환경 변수에 추가하기

배치 파일이 명령 프롬프트 어느 곳에서나 수행될 수 있도록 해당 위치를 시스템 환경 변수 PATH에 추가 해야한다.

  • 윈도우 + R 키로 실행창을 띄우고 sysdm.cpl 명령어 입력
  • 시스템 속성 창에서 <고급> 탭으로가서 <환경 변수>를 누른다
  • 사용자 변수 중에 [Path]를 선택하고 <편집>을 누른다
  • <새로 만들기>를 누른다
  • 배치 파일이 있는 위치를 입력한다 *C:\venvs
  • <확인>을 누른다

3) PATH 환경 변수 확인하기

  • set path 명령을 실행하여 내용을 확인한다.
  • 앞서 입력한 위치가 포함되어 있는지 확인한다.

4) 배치 파일 실행하여 가상 환경에 진입하기

윈도우 명령 프롬프터를 키고 앞서 만든 배치 파일명을 입력하여 실행한다.
*cmd파일은 확장자까지 입력하지 않아도됨

이동과 동시에 activate 됨을 알 수 있다.

6. 파이참 설치 및 사용해보기

1) 아래의 주소를 통해 윈도우용 파이참 설치

링크텍스트

<Professional> 유료
<Community> 무료
*특별히 주의할 점은 없으므로 끝까지 <next>

2) 파이참 실행 후 프로젝트 파일 오픈

<Open> 을 선택해 생성한 파일 선택 *C:/projects/myproject

7. 파이참 인터프리터 설정하기

현재 파이참 인터프리터 위치 확인하기

*main파일은 지우고 시작

  • 파이참 메뉴에서 <File> -> <Settings>
  • 왼쪽 메뉴에서 <Project: myproject> -> <Python interpreter>
  • 경로창 오른쪽에 톱니바퀴 클릭
  • <Add> 클릭
  • <Existing environment> 체크 후 오른쪽 <...> 클릭
  • 가상환경 위치에있는 Scripts 파일안에 Python.exe 를 선택 후 <ok>
    *C:\venvs\myproject\Scripts\python.exe

8. 첫 번째 어플리케이션 만들기

1) 새 파이썬 파일 만들기

myproject 디렉토리에 pybo.py 파일을생성함

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_pybo():
    return 'Hello, Pybo!'

from flask import Flask
//플라스크를 불러옴

app = Flask(__name__)
// 플라스크 어플을 생성하는 코드 __name__ 이라는 변수에는 파일명이 들어감

@app.route('/')
// 특정 url에 접속하면 바로 다음 줄에 있는 함수를 호출하는 플라스크 데코레이터

def hello_pybo():
return 'Hello, Pybo!'
// Hello, Pybo! 라는 값을 반환하는 함수

2) 플라스크 서버 실행하기

가상환경에서 flask run을 실행해 플라스크 개벌서버를 실행한다.

(myproject) c:\projects\myproject>flask run
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
Usage: flask run [OPTIONS]

Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory.

하지만 "플라스크 어플리케이션을 찾을 수 없다"는 오류 메세지가 발생한다. 이럴땐 "FLASK_APP" 이라는 환경 변수에 플라스크 어플리케이션을 지정해 주어야 한다.

*FLASK_APP 환경변수의 기본값
플라스크는 FLASK_APP 환경 변수가 지정되지 않은 경우 자동으로 app.py를 기본 어플리케이션으로 인식한다.
따라서 앞의 pybo.py 파일명을 app.py로 지었다면 FLASK.APP 환경 변수를 별도로 지정하지 않아도 된다.
하지만 FLASK_APP 환경 변수를 별도로 지정하는 방법으로 이 문제를 해결할수 있다.

3) 기본 어플리케이션 설정하기

myproject 디렉토리에서 다음 명령을 실행하여 FLASK_APP에 앞서만든 pybo.py 어플리케이션을 지정한다.

set FLASK_APP=pybo

(myproject) c:\projects\myproject>set FLASK_APP=pybo

(myproject) c:\projects\myproject>flask run
 * Serving Flask app "pybo"
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

이번엔 플라스크 서버가 운영 환경으로 실행되어 경고 메세지가 뜬다. 플라스크는 서버를 실행할 때 아무런 설정을 하지 않았다면 기본 운영 환경으로 실행한다.

4) 플라스크 서버를 개발 환경으로 실행하기

<ctrl+c> 를 눌러 구동 중인 플라스크 서버를 중지한다.
다음 명령을 실행해 플라스크 서버 실행 환경을 개발 환경으로 바꾼다.

set FLASK_ENV=development

(myproject) c:\projects\myproject>set FLASK_ENV=development

(myproject) c:\projects\myproject>flask run
 * Serving Flask app "pybo.py" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 202-513-618
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

서버를 실행하고 마지막 문구에 있는 웹 주소로 접속을 해보면
Hello, Pybo! 가 출력된다.

5) 실습을 더 간편하게 환경 변수 추가하기

플라스크 서버를 실행하기 위해선 매번 FLASK_APP과 FLASK_ENV 변수를 설정한 다음 플라스크 서버를 실행하지 않기위해서는 앞서 생성한 배치파일 즉 myprojecct.cmd 파일에 명령어를 추가하여 입력해 준다.

set FLASK_APP=pybo
set FLASK_ENV=development

@echo off
cd c:/projects/myproject
set FLASK_APP=pybo
set FLASK_ENV=development
c:/venvs/myproject/scripts/activate

이렇게 하면 FLASK_APP과 FLASK_ENV 환경 변수가 자동으로 설정된다.

링크텍스트

profile
개린이

0개의 댓글

관련 채용 정보