728x90
1. 새로운 프로젝트 생성하기 (가상환경 켜고)
(venv) sangminpark@Sangminui-MacBookPro-16 Django % django-admin startproject crud2
2. blog 앱 만들기
(venv) sangminpark@Sangminui-MacBookPro-16 Django % cd crud2
(venv) sangminpark@Sangminui-MacBookPro-16 crud2 % python manage.py startapp blog
3. crud2 폴더 내부 settings.py - INSTALLED_APPS에 'blog' 삽입하기, TIME_ZONE에 'Asia/Seoul'으로 바꿔주기
-> 후자를 하는 이유는, 기본적으로 시간이 KST에 맞춰져 있지 않기 때문이다.
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog'
]
..
TIME_ZONE = 'Asia/Seoul'
4. 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=10)
pub_date = models.DateTimeField()
body = models.TextField()
def __str__(self):
return self.title
CharField는 max_length를 무조건 수반하고, TextField는 필요없다. __str__이 들어가는 이유는, 제목을 객체 형태가 아니라 실제 글을 작성할 때 썼던 제목(title)으로 보여주기 위함이다.
5. models.py를 수정했으므로 아래 명령어를 터미널에서 실행한다.
(venv) sangminpark@Sangminui-MacBookPro-16 crud2 % python manage.py makemigrations
(venv) sangminpark@Sangminui-MacBookPro-16 crud2 % python manage.py migrate
6. admin에 로그인 할 superuser를 만든다.
(venv) sangminpark@Sangminui-MacBookPro-16 crud2 % python manage.py createsuperuser
Username (leave blank to use 'sangminpark'):
Email address:
Password:
Password (again):
This password is too short. It must contain at least 8 characters.
This password is too common.
This password is entirely numeric.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
짧아도 그냥 쓸 수 있다. email address는 안넣어도 된다.
7. 서버를 켜고 127.0.0.1:8000/admin에 들어간다. 그럼 아래와 같은 모습이 나온다.
python manage.py runserver
우리가 models.py에서 만들어준 blog가 없다.
8. 여기에 blog를 추가하기 위해 crud2/blog/admin.py에 model을 등록해준다. admin에게 우리가 model을 만들었음을 알려주는 과정이다.
from django.contrib import admin
from .models import Blog
# Register your models here.
admin.site.register(Blog)
이렇게 글을 작성해주면,
이렇게 떠야 정상이다.
'Django' 카테고리의 다른 글
[Django] Template 상속, 앱 분리, Static (0) | 2021.07.22 |
---|---|
[Django] CRUD - U, D (0) | 2021.07.22 |
[Django] CRUD - R, C (0) | 2021.07.21 |