프레임워크
자주 사용되는 코드를 체계화하여 쉽게 사용할 수 있도록 도와주는 코드 집합이다.
라이브러이와 비슷하지만 규모가 더 크고 프로젝트의 기반이 된다. (구조를 만드는 골조가 프레임워크라면 자재들이 라이브러리)
가상환경 세팅
django 설치
pip install django
requirements.txt만들기 (가상환경에 설치된 항목 표시)
pip freeze > requirements.txt
프로젝트 생성
Django를 처음 사용하는 경우 초기 설정을 처리해야 합니다. 즉, 데이터베이스 구성, Django 관련 옵션 및 응용 프로그램별 설정을 포함하여 Django 인스턴스에 대한 설정 모음인 Django 프로젝트를 설정하는 일부 코드를 자동 생성해야 합니다
django-admin startproject 프로젝트이름
프로젝트 안에 들어간다. cd mysite
앱 생성
django-admin startapp board
프로젝트?? 앱?? 무슨 차이일까
프로젝트
- 환경 설정, 앱의 집합
- 프로젝트는 여러 앱을 가질 수 있다.
앱
- 어떤 동작을 하는 웹 애플리캐이션
- 예: 웹블로그 시스템, 공식기록 데이터베이스, 간단한 투표앱
필요에 따라 프로젝트 하나에 여러개의 앱을 담을 수 있다.
Django 템플릿 (Template)
Django에서의 View가 다른 MVC Framework에서의 Controller와 유사한 역활을 한다면, Django에서의 템플릿 (Template)은 MVC Framework에서의 View와 비슷한 역활을 한다. 템플릿 (Template)은 View로부터 전달된 데이타를 템플릿에 적용하여 Dynamic 한 웹페이지를 만드는데 사용된다.
앱 폴더 안에 "templates" 라는 서브폴더 만들기
초기 세팅 완료.
만약 깃허브에 프로젝트를 등록하려면 settings.py에 있는 Secret_Key는 공개하면 안된다. (settings.py분리하는 방법에 대해 많이 올라와 있다.)
MVC(Model-View-Controller) 모델
- 어플리케이션을 Model과 View 그리고 Controller로 역할을 나누어 구분한 디자인 패턴
- 사용자가 Controller를 조작하면, Controller는 Model을 통해 데이터를 가져옴
- 가져온 데이터를 View를 통해 사용자에게 전달
Model(모델)
데이터를 가지고 있으며, 데이터를 처리하는 로직 또한 가지고 있다.
View(뷰)
화면에 요청에 대한 결과물을 보여주는 역할을 한다.
Controller(컨트롤러)
모델과 뷰를 이어주는 역할. 요청에 따라 모델에게 적절한 로직을 가동하도록 알려주고 모델이 응답하면 그 응답을 뷰에 전달하는 역할.
MTV(Model - Template - View) 모델
- Python의 Django 프레임워크에서 사용하는 디자인 패턴
Model(모델)
어플리케이션의 정보, CRUD, 데이터 등 백그라운드 데이터를 담당한다
Template(템플릿)
사용자들에게 보여지는 UI 화면을 출력한다 (HTML 등)
View(뷰)
데이터가 어떤 상황에서 어떻게 처리되는지를 알려주는 함수가 모여있는 곳이다. 가져온 데이터를 Template에 전달
댓글