-
[Django] 모델 생성, 어드민 페이지 실습Python & Django 2021. 6. 1. 15:42
이전 포스팅에서는 MTV 패턴 중 모델을 제외한 Template, View 를 사용해 간단한 웹페이지 작업을 실습해봤습니다.
오늘은 모델을 만들고, 어드민 사이트에서 데이터를 작성하는 것까지 해보겠습니다.
1. 프로젝트, 앱 생성하기
다시 한번 더 프로젝트 생성부터 해보겠습니다.
우선, vs code에서 아래 명령어를 입력해 가상환경을 생성하고 실행하였습니다.
$ python3 -m venv myvenv $ source myvenv/bin/activate
그리고 django 를 설치합니다.
$ pip install django
다음 작업은 새 프로젝트를 생성하고 해당 프로젝트 폴더로 이동하여 새 앱을 생성하는 것입니다. 폴더를 이동하는 것은 새로운 앱을 생성하려면 manage.py 를 사용해야 하는데 해당 프로젝트 폴더에 manage.py 가 있기 때문입니다.
$ django-admin startproject 프로젝트명 $ cd 프로젝트명 $ python3 manage.py 앱명
여기까지 하면, 이렇게 vs code 왼쪽 탭에 새로운 프로젝트와 앱이 생성된 것을 확인할 수 있습니다.
이제 settings.py 에 앱을 등록해줘야 합니다. 제 경우 tistory/settings.py 에 가서 INSTALLED_APPS 에 blog 를 추가합니다.
이제 준비가 모두 끝났습니다. 계속해서 blog 모델을 만들어보겠습니다!
2. 모델 생성하기
우리는 blog 모델을 만들어야 하기 때문에, blog/models.py 에 가서 클래스를 작성해주면 됩니다.
from django.db import models # Create your models here. class Blog(models.Model): title = models.CharField(max_length=200) writer = models.CharField(max_length=100) pub_date = models.DateTimeField() body = models.TextField()
우선, Blog 클래스는 Model 클래스를 상속받기 때문에 (models.Model) 이라 작성할 수 있고, 테이블에 들어갈 컬럼들을 만들어줍니다.
저는 title, writer, pub_date, body 로 컬럼을 만들고 해당하는 필드를 지정해주었습니다.
그리고 max_length= 를 사용하면 글자수를 제한할 수 있습니다.
이때 id 컬럼은 Blog 클래스가 모델 클래스로부터 상속받기 때문에 넣어주지 않아도 됩니다.
컬럼까지 작성했다면 테이블을 생성하고 확정하면 됩니다.
# 테이블 생성 $ python3 manage.py makemigrations # 마이그레이션의 변경 사항을 DB에 저장 $ python3 manage.py migrate
3. Admin 페이지 접속하기
장고에서는 어드민을 제공하기 때문에 DB 에 담긴 데이터를 쉽게 확인해볼 수 있습니다.
우선, 어드민 유저를 생성해야 합니다.
$ python3 manage.py createsuperuser
위 명령어를 실행하면 이름, 이메일, 비밀번호를 입력하라는 메세지가 나옵니다. 다 잘 입력한 후 서버를 실행해보겠습니다.
# 서버실행하기 $ python3 manage.py runserver
localhost 주소로 들어가면 아래 이미지와 같이 서버가 실행되었고, 주소 뒤에 /admin 을 입력하면 어드민 페이지에 접속할 수 있습니다.
아까 입력했던 username 과 password 를 입력해 로그인해주면 아래와 같은 페이지가 나옵니다. 그런데 Blog 가 보이지 않는 것은 어드민에 Blog 를 등록해주지 않았기 때문입니다.
다시 vs code 로 가서 blog/admin.py 에 아래 코드를 입력해 블로그를 등록합니다.
from django.contrib import admin from .models import Blog # Register your models here. admin.site.register(Blog)
이 코드들은 우선 models 로부터 Blog 를 불러오고, 어드민 사이트에 Blog 를 등록한다는 의미입니다.
서버를 재실행한 후 어드민 페이지로 가보면 아래와 같이 Blog 가 생성되어 있습니다!
Blogs 에 들어가서 Add Blog 버튼으로 아래와 같이 새로운 데이터를 작성할 수 있습니다. 아까 우리가 만들어준 title, writer, pub_date, body 컬럼들과 해당 필드들이 알맞게 나오는 것도 확인할 수 있습니다.
그런데 아래와 같이 새로 생성한 블로그 객체가 제목으로 보이지 않아서 조금 불편합니다.
이 경우에는 __str__ 메소드를 활용합니다. 이 메소드는 객체를 호출했을 때 붙여주는 이름표를 만들어줍니다. models.py 에 가서 아래 코드를 추가합니다.
... def __str__(self): return self.title
self.title 로 이름표를 붙이겠다는 의미인데, 여기서 self 는 Blog 클래스 안에 있기 때문에 blog 를 의미합니다.
다시 어드민 페이지로 가서 새로고침 해보면, 이렇게 제목으로 잘 나오는 것을 확인할 수 있습니다!
이제 모델을 만들고 어드민을 사용해 데이터를 저장하는 방법을 알게 되었습니다! 다음 포스팅에서는 CRUD 를 구현해 블로그를 만드는 과정을 공부해보겠습니다~
'Python & Django' 카테고리의 다른 글
[Django] get_object_or_404 로 404 페이지 만들기 (0) 2021.06.01 [Django] CURD 로 블로그 구현하기(READ) (0) 2021.06.01 [Django] MTV 패턴과 간단한 예제 실습(model 제외) (0) 2021.05.21 [Python 기초] 자료형 (0) 2021.05.12 [Python 기초] 입력과 출력 (0) 2021.05.09