# 플라스크 개발 환경 준비
C:\Users> cd \
C:\> mkdir venvs
C:\> cd venvs
C:\venvs> python -m 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>
# 플라스크 설치
C:\venvs\myproject\Scripts> activate
(myproject) C:\venvs\myproject\Scripts>
(myproject) C:\venvs\myproject\Scripts> pip install flask
(myproject) C:\venvs\myproject\Scripts> python -m pip install --upgrade pip
# 플라스크 프로젝트 생성하기
C:\> mkdir projects
C:\> cd projects
# 배치 파일로 myproject 가상 환경에 간단히 진입하기
1) 환경 변수에 C:/venvs 추가
2) C:/venvs/myproject.cmd 파일 생성
@echo off
cd c:/projects/myproject
c:/venvs/myproject/scripts/activate
3) 배치 파일 실행
C:\Users\> myproject
(myproject) C:\projects\myproject>
# 파이참 인터프리터 설정
# 애플리케이션 파일 만들기
project/myproject/pybo.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_pybo():
return 'Hello, Pybo!'
# 플라스크 서버 실행
(myproject) c:\projects\myproject>flask run
(myproject) c:\projects\myproject>set FLASK_APP=pybo
(myproject) c:\projects\myproject>set FLASK_DEBUG=true
1) myproject.cmd 에 플라스크 명령어 추가
C:/venvs/myproject.cmd
@echo off
cd c:/projects/myproject
set FLASK_APP=pybo
set FLASK_DEBUG=true
c:/venvs/myproject/scripts/activate
# 플라스크 프로젝트 구조
models.py : 데이터베이스 처리
forms.py : 서버로 전송된 폼 처리
views.py : 화면 구성
static/ : css, javascript, image 파일 저장
templates/ : html 파일 저장
config.py : 파이보 프로젝트 설정
# 플라스크 애플리케이션 팩토리
pybo.py -> __init__.py
(myproject) c:\projects\myproject> mkdir pybo
(myproject) c:\projects\myproject> move pybo.py pybo/__init__.py
(myproject) c:\projects\myproject>flask run
project/myproject/pybo/__init__.py
from flask import Flask
def create_app():
app = Flask(__name__)
@app.route('/')
def hello_pybo():
return 'Hello, Pybo!'
return app
# 블루프린트 생성, 라우팅 함수 추가
(myproject) c:\projects\myproject> cd pybo
(myproject) c:\projects\myproject\pybo> mkdir views
projects/myproject/pybo/views/main_views.py
from flask import Blueprint
bp = Blueprint('main', __name__, url_prefix='/')
@bp.route('/hello')
def hello_pybo():
return 'Hello, Pybo!'
@bp.route('/')
def index():
return 'Pybo index'
project/myproject/pybo/__init__.py 수정
from flask import Flask
def create_app():
app = Flask(__name__)
from .views import main_views
app.register_blueprint(main_views.bp)
return app