본문 바로가기
Develop/Django(Exercise)_v1

2. Model 이해하기 (어드민 페이지 적용_Django.restAPI)

by 보보트레인 2023. 9. 7.

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에 주석을 지우고 다음과 같이 모델 클래스를 만들어보자.

from django.db import models

class Photo(models.Model):
    title = modelsCharField(max_length=50)
    author = models.CharField(max_length=50)
    image = models.CharField(max_length=200)
    description = models.TextField()
    price = models.IntegerField()

이 코드를 이해하려면 필드설정을 이해해야한다.

필드설정은 다음과 같다.

 

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이라고 한다.

 

마이그레이션 과정을 세분화 하면 다음과 같다.

  1. makemigrations: 우리가 모델을 변경한 내용을 기록하여 파일로 만들어주는 과정이다. photo/migrations 폴더 내에 생기는 파일들이 바로 이 과정으로 만들어지는 파일이다.
  2. migrate: makemigrations에서 생성된 파일을 실제로 실행시켜 실제 데이터베이스에 변경사항을 적용시켜주는 과정

즉 models.py에서 수정한 내용은 makemigrations와 migrate 과정을 거쳐 실제 db파일까지 반영이 된다.

 

실제로 명령어를 입력해보자.

→ python manage.py makemigrations

 

photo/migrations 폴더에 0001_initial.py 폴더가 생김
Photo 모델이 잘 생겼다.

→ python manage.py migrate

migrate 명령어를 입력하면 0001_initial.py 파일의 내용이 잘 적용되었다고 나오면서 정상적으로 잘 작동함을 알 수 있다.

Applying OK!!!!!!!!!!!!


5. Django모델 어드민 페이지 적용

photo/admin.py에 들어가서 다음과 같이 Photo 모델을 등록해주자.

from django.contrib import admin
from .models import Photo

# Register your models here.
admin.site.register(Photo)

admin.site.register()를 통해 어드민 페이지에 Photo 모델을 등록하면 된다.

 

포토 모델이 잘 적용되었다!

이제 어드민 페이지에서 포토 모델을 관리할 수 있는데, 생성,수정,삭제까지 모두 가능하다!

우측의, +add를 누르면

관리

다음과 같은 화면이 나오고 내용을 입력 후 , save를 누르면 잘 저장됨을 확인할 수 있다

 

다음 시간에는 고객에게 직접적으로 보이는 화면은 MTV의 T, Template부분에 대해서 공부하는 시간을 가질 예정이다.

반응형