일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Deep Learning
- 장고
- MariaDB
- yaml
- kubernetes
- Tkinter
- 텐서플로우
- 컴퓨터 비전
- Docker
- Web Programming
- GUI
- 웹 프로그래밍
- tensorflow
- 논문 리뷰
- vue.js
- POD
- 파이토치
- Python
- numpy
- 데이터베이스
- paper review
- Computer Vision
- 딥러닝
- FLASK
- k8s
- OpenCV
- 그래픽 유저 인터페이스
- pytorch
- Django
- 파이썬
- Today
- Total
Maxima's Lab
[Flask] Flask 모듈화 방법 (Blueprint) & current_app 본문
안녕하세요, 오늘은 Flask 애플리케이션에서 Blueprint 패키지를 활용하여 애플리케이션의 구성요소들 모듈화하고, current_app을 사용해서 config 구성요소에 접근하는 방법에 대해서 알아보겠습니다.
/myapplication
/main_1
__init__.py
views.py
/main_2
__init__.py
views.py
__init__.py
app.py
위의 구조에서 /myapplication/main_1/.__init__.py 파일에 대해서 알아보겠습니다.
# /myapplication/main_1/.__init__.py
from flask import Blueprint
main_1 = Blueprint('main_1', __name__, url_prefix='/main_1')
from . import views
이어서, /myapplication/main_1/views.py 파일에 대해서 알아보겠습니다.
# /myapplication/main_1/views.py
from . import main_1
from flask import request, jsonify
@main.route('/', methods=['POST', 'GET'])
def index():
return "main_1/views.py"
main_2에서도 유사하게 코드를 작성해주시면 됩니다.
추가적으로, app.py 파일에 대해서 알아보겠습니다.
# app.py
from myapplication import create_app
app = create_app()
if __name__ == '__main__':
app.run(debug=True)
위의 코드를 활용하여 실행하게 되면 Flask Server에 대해 모듈화를 할 수 있게 됩니다.
모듈화된 구조에서 create_app를 활용하여, blueprint에서 app.config에 저장된 변수를 활용하는 방법에 대해서 알아보겠습니다. 다음은 myapplication/__init__.py 파일 내 코드입니다.
# myapplication/__init__.py
from flask import Flask
from config import Config
def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(config_class)
from myapplication.main_1.views import main_1
from myapplication.main_2.views import main_2
app.register_blueprint(main_1)
app.register_blueprint(main_2)
app.config['myList'] = []
return app
위의 코드는 기존 코드에서, app.config['myList'] = []을 추가하였습니다. 해당 List를 blueprint에서 사용하기 위해서는 다음과 같이 코드를 구성하게 됩니다.
# /myapplication/main_1/views.py
from . import main_1
from flask import request, jsonify
from flask import current_app
@main_1.route('/', methods=['POST', 'GET'])
def index():
current_app.config['myList'].append('element_1')
print(current_app.config['myList'])
return "main_1/views.py"
from flask import current_app을 활용하여, blueprint에서 config 내 'myList' 요소에 대해 접근할 수 있게 되며, 위의 코드 기준으로 ['element_1']이 출력되게 됩니다.
지금까지, Blueprint 패키지를 활용하여 Flask 애플리케이션의 구성요소들을 모듈화하고 current_app을 사용하여 config 요소들에 접근하는 방법에 대해서 알아보았습니다.
'Web Programming' 카테고리의 다른 글
[Vue.js 3 + Vuetify 3] Vuetify 3 설치 및 적용하는 방법 (0) | 2024.03.11 |
---|---|
[Web Programming] Modal Dialog 커스터마이징 하는 방법 (0) | 2024.02.23 |
[Flask] Scheduler 사용법 (APScheduler 패키지) (0) | 2023.11.06 |
[Web Programming] Vue.js 설치 및 실행 방법 (w/ Node.js) (1) | 2023.10.28 |
[Database, DB] pymysql 라이브러리를 활용한 MariaDB 연동 - 1 (0) | 2023.10.28 |