MTV패턴의 M부분, 즉 MODEL ( 관리자 데이터페이지) 에 대해서 알아보자.
1. 어드민 페이지 접속
먼저 Migration 에러부터 수정하고 들어가자.
터미널에 다음 명령어 입력.
→ python manage.py migration
그 다음 파이썬 서버를 run 한 이후에
→ python manage.py runserver
(이전글에서 적었듯이 django 세팅 후 myvenv 가상환경 실행한 다음, 서버를 켜야 잘 동작한다,)
장고 선언 주소인
127.0.0.1:8000/admin/을 접속하면 다음의 화면을 확인할 수 있다.
Django에서는 기본적으로 관리자 페이지를 이렇게 제공해준다.
myweb의 url.py에 가면 다음의 코드를 확인할 수 있다.
어드민페이지까지 제공해주다니 참으로 편리하지 않은가?
2. 어드민 페이지 관리자 계정 생성하기
ctrl+c로 일단 서버를 다시 원복하고
콘솔에 다음과 같은 명령어 입력
python manage.py createsuperuser
그리고 아이디 /이메일 /비밀번호를 적고 계정을 생성한다.
필자는 id는 bobo / 비번은 1111로 간단 로그인을 했다.
3. Django 모델 만들기
models.py에서 작성할 예정.
photo/models.py에 주석을 지우고 다음과 같이 모델 클래스를 만들어보자.
이 코드를 이해하려면 필드설정을 이해해야한다.
필드설정은 다음과 같다.
CharField : 문자열(길이제한 필요)
IntegerField : 정수
TextField : 문자열(길이제한 필요없음)
DateField : 날짜
DateTimeField : 날짜 + 시간
FileField : 파일
ImageField : 이미지파일
ForeignKey : 왜래키
OneToOneField: 1대1 관계
ManyToManyField : 다대다 관계
이처럼 필드설정을 하여 Photo라는 클래스로 '사진 모델'을 정의하였다.
일반 클래스와 다른점은 models,Model을 상속받았다는 점과 각 속성들을 models를 사용해 정의하였다는 점이다.
why?)
models는 Django의 데이터베이스와 관련된 내용을 미리 작성해놓은 도구이다.
따라서 우리는 models.Model이라는 클래스를 상속받아서 그 기능을 그대로 가져다 쓸 수 있으며, 위의 필드설정도 그대로 쓸 수 있다.
4. Django 모델 적용시키기
우리가 만든 모델로 데이터베이스를 쌓으면 db테이블에 저장이 된다.
이렇게 모델을 통해 데이터베이스를 적용시키는 과정을 Migration이라고 한다.
마이그레이션 과정을 세분화 하면 다음과 같다.
- makemigrations: 우리가 모델을 변경한 내용을 기록하여 파일로 만들어주는 과정이다. photo/migrations 폴더 내에 생기는 파일들이 바로 이 과정으로 만들어지는 파일이다.
- migrate: makemigrations에서 생성된 파일을 실제로 실행시켜 실제 데이터베이스에 변경사항을 적용시켜주는 과정
즉 models.py에서 수정한 내용은 makemigrations와 migrate 과정을 거쳐 실제 db파일까지 반영이 된다.
실제로 명령어를 입력해보자.
→ python manage.py makemigrations
→ python manage.py migrate
migrate 명령어를 입력하면 0001_initial.py 파일의 내용이 잘 적용되었다고 나오면서 정상적으로 잘 작동함을 알 수 있다.
5. Django모델 어드민 페이지 적용
photo/admin.py에 들어가서 다음과 같이 Photo 모델을 등록해주자.
admin.site.register()를 통해 어드민 페이지에 Photo 모델을 등록하면 된다.
이제 어드민 페이지에서 포토 모델을 관리할 수 있는데, 생성,수정,삭제까지 모두 가능하다!
우측의, +add를 누르면
다음과 같은 화면이 나오고 내용을 입력 후 , save를 누르면 잘 저장됨을 확인할 수 있다
다음 시간에는 고객에게 직접적으로 보이는 화면은 MTV의 T, Template부분에 대해서 공부하는 시간을 가질 예정이다.
'Develop > Django(Exercise)_v1' 카테고리의 다른 글
6. 사진게시물 작성기능 .with (csrf_token(보안)) (0) | 2023.09.17 |
---|---|
5. 에러 데이터 처리 / 상세페이지 만들기 (0) | 2023.09.15 |
4. ORM(Object Relation Mapping) (0) | 2023.09.15 |
3. Django Template / View (0) | 2023.09.14 |
Django.restAPI (with python/) _DRF 프로젝트 세팅 (0) | 2023.09.06 |