1. Blueprint 이름은 Flask 내부에서 라우트와 뷰 함수를 구분하는 데 사용됩니다.
예시: 학교의 수업과 교과서
- Blueprint 이름은 학교의 과목명 같아. 예를 들어, Blueprint('math', __name__)이라고 하면 "수학 과목"이 되는 거야.
- 라우트는 수업 시간표의 각 과목을 나타내. 예를 들어, "1교시 수학" 같은 거야.
- 뷰 함수는 그 과목에서 실제로 배우는 내용이지. 예를 들어, 수학에서 "덧셈과 뺄셈"을 배우거나, "미적분"을 배우는 것처럼.
Blueprint 이름을 'math'라고 하면, Flask는 이 과목에 대한 정보(수업 시간표나 내용)를 관리하고, 그 안에서 다루는 라우트와 뷰 함수도 수학 과목에 관련된 것들로 다룰 수 있게 되는 거야.
math_blp = Blueprint('math', __name__) # 'math'라는 과목을 만든다고 생각해!
2. 현재 모듈 이름(name)은 Blueprint의 리소스를 찾는 데 필요합니다.
예시: 책의 위치
- **__name__**은 책이 어디에서 출판되었는지를 알려주는 출판사 같은 거야.
- 예를 들어, book_blp = Blueprint('books', __name__)에서 __name__은 "책이 어디서 왔는지"를 알려줘. 책이 어디서 출판되었는지를 알면, 그 책에 있는 각 장의 내용을 찾을 수 있게 되는 거야.
예시 코드
# books.py (책이 정의된 파일)
from flask import Blueprint
# 'books'는 책 제목, '__name__'은 책의 출판사(책이 이 파일에서 왔음을 알려주는 역할)
book_blp = Blueprint('books', __name__)
@book_blp.route('/list') # '목차'에 해당하는 부분
def list_books(): # '책 내용'에 해당하는 부분
return "Here is the list of books!"
# app.py (책을 사용하는 곳)
from flask import Flask
from books import book_blp
app = Flask(__name__)
app.register_blueprint(book_blp) # 책을 등록하고 사용하는 과정
if __name__ == '__main__':
app.run(debug=True)
정리
- Blueprint 이름은 학교 과목처럼, 라우트(시간표)와 뷰 함수(내용)를 구분하고 관리할 수 있게 해줘.
- **__name__**은 책이 어디서 왔는지 알려주는 출판사처럼, Flask가 Blueprint에서 리소스(파일, 내용)를 찾을 수 있도록 도와줘.
**'math'**와 같은 Blueprint 이름은 주로 기능적으로 구분하는 역할만 해. 실제로 코드에서 직접 사용되거나 불러오는 일이 없다는 거야. 예를 들어, 'math'라는 이름은 Flask가 내부적으로 Blueprint를 구분하는 데만 사용되고, 다른 코드에서 이름을 직접 불러오거나 활용하는 일은 없지.
Blueprint 이름 ('math')의 역할
- Blueprint 이름은 단순히 구분을 위한 태그처럼 생각하면 돼.
- **'math'**라는 이름을 붙여서 나중에 Flask가 수학 과목 관련 코드를 찾고 구분할 수 있도록 돕는 역할이야.
- 이 이름은 Flask가 이 Blueprint를 식별하고, 이 Blueprint에 속한 라우트(route)나 뷰 함수(view function)를 관리하는 데만 쓰여.
즉, 'math'라는 이름은 실제로 다른 코드에서 직접 호출되거나 사용되는 것이 아니라, Flask 내부에서 이 Blueprint가 무엇인지 식별하는데만 쓰인다는 거야.
예시
# books.py
from flask import Blueprint
book_blp = Blueprint('books', __name__) # 'books'는 이 Blueprint의 이름
@book_blp.route('/list') # '/list'는 '목차'라고 할 수 있어
def list_books(): # '책 내용'에 해당하는 부분
return "Here is the list of books!"
이 코드에서 'books'는 그냥 Blueprint의 이름일 뿐, 다른 코드에서 books를 직접 호출하거나 활용하는 일은 없어. Flask는 Blueprint 이름을 통해 이 Blueprint가 어떤 그룹에 속하는지 파악하고, 그에 따라 라우트나 뷰 함수들을 묶어서 관리하는 역할을 해.
왜 books 이름을 붙일까?
- 이 Blueprint가 책 관리와 관련된 모든 코드와 라우트를 다루고 있다는 걸 나타내기 위해 이름을 붙이는 거야.
- 예를 들어, 'books'라는 이름을 붙였으니까 나중에 책 관련 기능을 따로 관리하고, 다른 Blueprint와 구분할 수 있겠지.
중요한 점: 이름이 코드에서 직접 사용되지는 않아
- **'math'**라는 이름이 다른 코드에서 직접 사용되거나 불러오는 일이 없다는 점에서 기능적인 역할은 없다고 할 수 있어.
- 다만, Blueprint 이름은 Flask 내부에서 이 Blueprint를 관리하고 구분하는 데만 쓰인다고 이해하면 돼!
결론적으로, 'math'라는 이름은 Flask가 Blueprint를 구분하고, 라우트와 뷰 함수들을 함께 묶어서 관리하는 데 쓰이는 구분자 역할만 한다는 거야. 😊
'기술블로그-Flask편' 카테고리의 다른 글
Flask-Smorest의 응답 처리 방식 (0) | 2025.04.18 |
---|---|
Flask의 기능 + Blueprint + Flask-Smorest 통한 작업섹션 구분 (0) | 2025.04.18 |
클래스와 객체, self에 대한 자세한 설명 (0) | 2025.04.18 |
API에 대한 이해 (0) | 2025.04.18 |
✅ Flask에서 JSON 응답 순서 보장하기 (OrderedDict 활용) (0) | 2025.04.18 |