Scroll indicator done
728x90

# 플라스크 개발 환경 준비

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

 

728x90