MVC 패턴 - Model, View, Control
- MVC : 소프트웨어 개발 방법 중 하나
- Model : 데이터베이스 (백엔드 서버, 데이터를 다루는 부분)
- View : 인터페이스 (프론트엔드, 사용자의 눈에 보이는 웹페이지 등)
- Control : M과 V 사이에서 제어 담당 (RestAPI등)
- MVC의 목적
- MVC에 따라 코드를 분류하여 관리를 쉽게 하는 것 (위의 폴더 구조처럼 모델에 맞게 분류함)
- 자주 변경할 수 있는 View부분등을 따로 빼서 유지보수를 쉽게 하겠다는 것이 목적
- MVC의 단점
- 기본 취지와 어긋나게 유지보수 시 MVC 세 부분을 모두 조금씩 건드려야 하는 상황이 나옴
- 하나의 기능이 여러군데에 흩어져 있을 때, 코드의 가시성이 떨어질 수가 있음
import
bluePrint라는 같은 폴더내에 있는 BPtest와 test1파일을 서로 import한다.
test1파일의 func1함수는 test111을 프린트하며
이 기능을 Bptest에서 사용하기 위해서 test1을 import해주고
test1.func1을 통해 해당 함수를 불러온다.
test111이 출력되었다.
이번엔 하위 폴더인 sub_blueprint내에 test2파일을 새로 생성한다.
from으로 하위폴더에 접근해서 test2를 import하고 똑같이 사용해본다.
같은 폴더와 다른 폴더에 있는 두 파일을 import해서 사용해봤다.
BluePrint
MVC패턴 뿐 아니라 컴포넌트 단위로 개발을 할 때등
하나의 파일에 모든 코딩을 집어넣진 않는다.
이를 위해 여러 파일과 폴더를 import해서 연결해서 사용해줘야 하며
flask코드를 여러 파일에 작성할 수 있게 지원해주는 것이 blueprint기능이다.
blueprint기능을 사용해 main서버에 해당 기능을 import할 파일인 sub_bp파일을 생성하고
blueprint객체를 bp란 이름으로 생성해주고
bp라우팅 경로를 /bbb로 해준다.
main_bp파일에는 sub_bp를 import하여
register_blueprint를 사용해 import받은 sub_bp의 bp를 등록하며
경로를 /ccc로 지정해준다.
main서버를 실행하여 /ccc를 통해 sub_bp에 접근하고
여기서 bp의 라우팅경로인 /bbb에 접근하면 blog함수가 실행된다.
'Back-end' 카테고리의 다른 글
[Flask] 파이썬 db연결, MongoDB, Pymongo (0) | 2022.07.12 |
---|---|
[Flask] 파이썬에서 db연결, PyMySQL (0) | 2022.07.06 |
[Flask] 플라스크에서 지원하는 데코레이터 (0) | 2022.07.01 |
[Flask] 에러페이지 처리, 에러 로그파일로 저장 (0) | 2022.07.01 |
[Back-end] put, get, post, delete 방식별 RestAPI구현 (0) | 2022.06.29 |