Flask 어플리케이션 생성
# __init__.py
from flask import Flask
app = Flask(__name__) # Flask(__name__) 은 해당 어플리케이션 폴더의 이름
__name__
: 실행중인 위치의 이름을 가져옴 [magic method]
Flask 실행
$ FLASK_APP=flask_app flask run
# 다음과 같이 설정해 두면, 끄기 전까지 flask run으로만 실행 가능!
$ export FLASK_APP='app이름'
$ flask run
BluePrint 사용하기
# user.py
from flask import Blueprint
bp = Blueprint('users', __name__, url_prefix='/user')
@bp.route('/')
def index():
return 'User page'
- 'user' : 블루프린트 이름
- __name__ : 블루프린트의 import 이름
- url_prefix='/user' : URL 접두어 설정
# __init__.py
from flask import Flask
from flask_app.routes import user_bp
app = Flask(__name__)
app.register_blueprint(users.bp)
@app.route('/')
def index():
return 'Hello World!'
Application Factory
global한 context에서 app 을 선언하고 사용했었다.
하지만 이 경우,
- 여러 개의 어플리케이션을 동시에 사용할 때
- app 이 선언되어 있는 파일의 일부분만 필요할 때
문제가 발생할 수가 있다.
이런 문제점들을 피하기 위해 사용되는 방법이 함수를 따로 생성하는 application factory 방법이다.
from flask import Flask
def create_app():
app = Flask(__name__)
# import
from mini_flask_app.views.user_views import user_bp
app.register_blueprint(user_bp, url_prefix='/user')
return app
if __name__ == "__main__":
app = create_app()
app.run(debug=True)
'Code > Trouble Shooting' 카테고리의 다른 글
Git : 브랜치, 머지, 스태시 (0) | 2025.02.16 |
---|---|
[Colab] 코랩에서 .zip 압축 풀기 (0) | 2022.07.24 |
[GitHub] GitHub Markdown 이미지 사이즈 조절 (0) | 2022.06.23 |
댓글