"마이크로 웹 프레임워크" 라고 불리는데,
프레임워크를 간결하게 유지하고 확장할 수 있도록 만들었다는 뜻이다.
플라스크는 폼, 데이터베이스를 처리하는 기능이 없다. 그렇기 때문에 확장 모듈을 통해 이를 보완한다.
플라스크는 다른 웹 프레임워크에 비해 덩치가 작고 자유도가 높다. 규칙도 복잡하지 않다.
*프레임워크란?
"소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"
설계의 기반이 되는 부분을 기술한 확장 가능한 기반 코드와 사용자가 이 코드를 자기 입맛대로 확장하는 데 필요한 라이브러리이 두 가지 요소가 통합되어 제공되는 형태를 말하며, 사용자가 이를 이용해 일정 수준 이상의 품질을 보장받는 코드를 비교적 빠른 시간에 완성 및 유지 보수할 수 있는 환경을 제공해주는 솔루션이다.
라이브러리(정보의 저장소)
프레임워크(뼈대,틀)
파이썬 가상 환경은 파이썬 프로젝트를 진행할 때 독립된 환경을 만들어 주는 도구이다.
개발자가 2개의 파이썬 프로젝트를 진행하려고 할때 각각의 프로젝트가 요구하는 버전이 다를 수 있다.
그럴 경우 하나의 데스크톱에 서로 다른 버전의 파이썬을 설치해야 하는 문제가 생길 수 있다.
이러한 개발 환경은 구축하기도 어렵고 사용하기도 힘듦.
이런 경우 프로젝트1을 위해 가상환경1을 만들어 파이썬 2.7 버전을 설치하고 프로젝트2를 위해 가상환경2를 만들어 파이썬 3.8버전을 설치해서 사용 할 수 있다.
C:\venvs> python -m venv myproject
python -m venv 는 가상환경을 만드는 모듈 venv를 사용한다는 의미이고,
myproject 는 가상환경의 이름을 나타낸다.
C:\venvs> cd C:\venvs\myproject\Scripts
C:\venvs\myproject\Scripts> activate
(myproject) C:\venvs\myproject\Scripts>
(myproject) C:\venvs\myproject\Scripts> deactivate
C:\venvs\myproject\Scripts>
가상 환경에 진입한 상태에서 명령어 입력
pip install Flask
*만약 최신버전이 아닐경우
python -m pip install --upgrade pip
위의 명령어를 입력해 pip을 최신 버전으로 설치한다.
*pip은 파이썬 라이브러리를 설치하고 관리해 주는 파이썬 도구이다.
여러개의 프로젝트가 될 수 있으므로 프로젝트를 모아 둘 프로젝트 루트 디렉토리 생성은 필수이다.
C:\> mkdir projects
C:\> cd projects
C:\projects> C:\venvs\myproject\Scripts\activate
(myproject) C:\projects>
*반드시 프로젝트 루트 디렉토리 안에서 명령어를 입력
(myproject) C:\projects> mkdir myproject
(myproject) C:\projects> cd myproject
(myproject) C:\projects\myproject>
가상 환경에 진입하려면 C:\venvs\myproject\Scripts 로가서 activate 명령을 수행해야는데 매번하기 힘드니 배치 파일을 생성하여 가상환경에 간단히 진입할 수 있다.
venvs 디렉토리에 메모장을 이용해 myproject.cmd 파일을 만들고 아래와같은 내용을 작성한다.
@echo off
cd c:/projects/myproject
c:/venvs/myproject/scripts/activate
*해당 디렉토리로 이동한뒤 activate 명령 수행
배치 파일이 명령 프롬프트 어느 곳에서나 수행될 수 있도록 해당 위치를 시스템 환경 변수 PATH에 추가 해야한다.
윈도우 명령 프롬프터를 키고 앞서 만든 배치 파일명을 입력하여 실행한다.
*cmd파일은 확장자까지 입력하지 않아도됨
이동과 동시에 activate 됨을 알 수 있다.
<Professional> 유료
<Community> 무료
*특별히 주의할 점은 없으므로 끝까지 <next>
<Open> 을 선택해 생성한 파일 선택 *C:/projects/myproject
*main파일은 지우고 시작
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! 라는 값을 반환하는 함수
가상환경에서 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 환경 변수를 별도로 지정하는 방법으로 이 문제를 해결할수 있다.
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)
이번엔 플라스크 서버가 운영 환경으로 실행되어 경고 메세지가 뜬다. 플라스크는 서버를 실행할 때 아무런 설정을 하지 않았다면 기본 운영 환경으로 실행한다.
<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! 가 출력된다.
플라스크 서버를 실행하기 위해선 매번 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 환경 변수가 자동으로 설정된다.