반응형
0. 들어가기
-. 코드를 짤 때, 한 덩어리 (예를들어 main.py)에 모두 몰아넣는 것이 아니라, 기능별로 분리하여 작성하는 것을 모듈화(modularization)라 하고, 디자인 패턴 등에서 심도있게 다룬다.
-. 난 그냥 한번에 관리하기 힘드니까 잘라서 만들려고 한다. (예를들어 커뮤니티 게시판과 주식분석 게시판을 분리한다.)
-. Flask에서는 찾아보니 Blueprint (청사진?)이란 이름으로 제공한다.
-. 점프 투 플라스크와 ReadTheDocs를 보면서 따라한다.
※ Blueprint 생성 전 설계
-. 처음 할라니 어디부터 해야할지 모르겠다. 우선은 메인페이지/게시판/주식차트페이지를 구분해보겠다.
1) 메인(/main): 로그인 및 현재 사이트 요약
2) 게시판(/board): 유저들의 커뮤니티 글 게시
3) 주식(/stock): 각 주식의 현재 시황 및 지표들 게시
1. Blueprint 사용
-. 어렵진 않은 것 같다. webserver 하위에 폴더를 만들고 ( ex) .views ) 그 아래에 각 분기에 해당하는 route 들을 작성하면 된다.
#/main route에 대한 Blueprint 예시
#=========================================
from flask import Blueprint
from flask import Flask, render_template, redirect, url_for
bp = Blueprint('main', __name__, url_prefix='/main')
@bp.route('/')
def main():
return 'This is main page'
#=========================================
#__init__.py 수정
from flask import Flask, render_template, redirect, url_for
from jinja2 import Template
from .views import main_views, stock_views, board_views
app = Flask(__name__)
app.register_blueprint(main_views.bp)
app.register_blueprint(stock_views.bp)
app.register_blueprint(board_views.bp)
#root ("/")로 들어오면 "/main" 으로 리다이렉팅
@app.route("/")
def hello():
return redirect(url_for("main.main"))
-. 매우 고맙게도, template 폴더는 따로 지정해줄 필요 없이, __init__.py에서 불러오는 경로(/templates)를 공유한다.
-. 출력결과는 생략.
728x90
반응형
'python > Flask' 카테고리의 다른 글
[python] Flask - 게시판 만들기 (1) (2) | 2021.02.21 |
---|---|
[python] Flask - ORM 사용 SQLite 연동 - 파이썬은 날먹 (0) | 2021.02.21 |
[Python] Flask - 주식차트 그리기 및 삽입 - 파이썬은 날먹 (2) | 2021.02.16 |
[Python] Flask + Jinja - 파이썬은 날먹 (0) | 2021.02.15 |
[Python] Flask - 라우트(route) - 파이썬은 날먹 (0) | 2021.02.10 |
최근댓글