ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 를 구현해 블로그를 만드는 과정을 공부해보겠습니다~

     

Designed by Tistory.