-> 흐름은 html파일이라고 생각하자
-> 파일 및 폴더 간의 티키타카로 작동한다!
->처음 장고를 시작하면 장고 프로젝트를 생성해야한다!
지금 당장은 manage.py로 서버를 작동시킨다
App 은 프로젝트의 구성 단위이다.
App 생성
pyhton manage.py startapp app이름
하지만 앱을 생성한다고 바로 실행될 수는 없다!!
-> 프로젝트 폴더 내의 settings.py파일에게 앱이 생성되었음을 알려주어야 한다.
프로젝트와 앱을 생성한 이후 이 두개를 연결시켜주어야 한다!
myproject폴더의 settings.py
파일의 INSTALLED_APPS에 myapp.apps.MyappConfig
를
리스트에 추가해주면 프로젝트와 앱이 연결된다.
이 앱 폴더 안에는 templates 폴더 생성이 필요하다.
이 안에는 유저에게 보여질 화면들인 html파일을 만들어 담는다!
html파일을 만든 후 유저에게 보여질 이 화면이 언제, 어떻게 처리될지 알려주는 '함수'를 views.py
안에 작성한다.
views.py
언제 어떤 상황에서 데이터를 처리해야하는지 알려주는 파일로 이 안에 함수를 작성하면 된다.
url.py
파일은 내가 만든 html이 어떤 url을 입력해쓸 때 뜨게 할지 결정한다 .
우리가 url을 타고 접속하기 위해서 myproject폴더 안의 urls.py파일의 urlpatterns 리스트에
url을 추가시켜주면 된다.
path('조건', 폴더.파일.함수이름, name="이 경로의 이름")
-> 조건이 공백일 경우 접속한 기본 url로 포트번호에 접속했을 경우이다.
이 포트 번호 뒤에 /를 붙이고 ---를 쓰면 어디로 이동할지를 알려준다.
장고의 구동원리 : 티키타카 => MTV패턴!
MTV = Model, Template, View
각각 독립적으로 임무를 수행해 장고 전체를 구동시킨다!
MTV가 차용한 방식으로 좀 더 일반적인 패턴
MTV의 View와 MVC의 Controller가 아주 중요한 역할!
render함수
세 개의 인자를 받을 수 있음.
첫번째는 request, 두번째는 템플릿의 이름, 세번쨰는 선택적(사전형 객체, 딕셔너리형 자료형)
Model & Admin
- 데이터베이스를 다룸 : Model
- 데이터를 직접 다루는 권한을 가지고 있는 유저 : Admin
우선 models.py에 우리가 다룰 데이터를 클래스의 형태로 정의해주면 된다!
Ex) '다이어리' - 사진 날짜 내용이 들어가 있음
-> 다이어리라는 객체가 생성될 때마다 위의 세개의 데이터를 처리
=> 처리할 데이터를 클래스의 형태로 만들어준 다음 계속 호출하면 같은 형식의 객체가 찍혀 나옴
비유를 하자면
따라서 models.py에 새로 데이터가 생기면 이를 데이터베이스에 알려주어야 한다!!
-> 알려주는 명령어 :
python manage.py makemigrations
/python manage.py migrate
migration.py를 만드는 과정 만들어진걸 실제로 적용
admin 계정 만들기
python manage.py createsuperuser
(-> admin.py 데이터 등록)