Skip to content

Latest commit

 

History

History
99 lines (80 loc) · 2.36 KB

File metadata and controls

99 lines (80 loc) · 2.36 KB

3주차 - 2.model&admin 실습

1. 새로운 Django 프로젝트 생성

$ django-admin startproject <project 이름>

2. 새 프로젝트 App 생성

$ python manage.py startapp <app 이름>

3. settings.py에 App 추가

INSTALLED_APPS리스트에 앱 추가

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog.apps.BlogConfig',
]

4. 처리할 데이터를 models.py에 정의

class를 사용하여 정의

  • models.CharField() : 짧은 문자열
  • models.DateTimeField() : 날짜와 시간을 나타내는 데이터
  • models.TextField() : 긴 문자열
class Blog(models.Model):
    title = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    body = models.TextField()

5. 작성한 model을 DataBase에 적용

작성한 modelDataBase에 적용하는 명령어

$ python manage.py makemigrations

실제로 migrate를 하는 명령어

$ python manage.py migrate

실행 결과

6. admin계정 생성

admin계정 생성 명령어

$ python manage.py createsuperuser

실행 결과

7. admin.py에 models.py에 정의한 Class 추가

  1. admin.pymodels.pyclass 선언
from .models import Blog
  1. classadmin.py에 등록
admin.site.register(Blog)

최종 admin.py 코드

from django.contrib import admin
from .models import Blog

admin.site.register(Blog)

admin 사이트 실행 결과

8. Blog Object를 제목으로 설정

class내부에 __str__함수 정의

class Blog(models.Model):
    title = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    body = models.TextField()

    def __str__(self):
        return self.title