pycharm 사용
1. 설정 변경
djangosmaple/settings.py를 수정한다.
TIME_ZONE = 'Asia/Seoul'
2. 어플리케이션 만들기
~$ docker-compose run django /app/manage.py startapp blog
manage.py 파일이 docker container안의 app이라는 폴더 안에 있으므로 이렇게 실행시켜 준다.
그러면 루트 디렉토리 안에 blog라는 폴더가 생성된다.
이후, djangosaple/settings.py를 수정한다. (중요 - 이거 안하면 migrate안됨)
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
3. 블로그 글 모델 만들기
blog/models.py 에 내용 삭제후 아래 내용 추가하여 블로그 글 모델을 정의
from django.conf import settings
from django.db import models
from django.utils import timezone
class Post(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
4. 데이터 베이스에 모델을 위한 테이블 만들기
~$ docker-compose exec django python /app/manage.py makemigrations blog
Migrations for 'blog':
blog/migrations/0001_initial.py
- Create model Post
~$ docker-compose exec django python /app/manage.py migrate blog
Operations to perform:
Apply all migrations: blog
Running migrations:
Applying blog.0001_initial... OK
5. 장고 관리자
관리자 화면을 한국어로 변경하길 원할 경우 ‘settings.py’중 LANGUAGE_CODE = ‘en-us’를 LANGUAGE_CODE = ‘ko’로 바꾼다.
모델링 한 글을 장고 관리자에서 추가하거나 수정, 삭제 가능.
blog/admin.py 수정한다.
from django.contrib import admin
from .models import Post
admin.site.register(Post)
http://127.0.0.1:8000/admin/에 접속하면 로그인 페이지를 볼 수 있다.
~$ docker-compose exec django python /app/manage.py createsuperuser
사용자 이름 (leave blank to use 'root'): admin
이메일 주소: admin@admin.com
Password:
Password (again):
비밀번호가 너무 짧습니다. 최소 8 문자를 포함해야 합니다.
비밀번호가 너무 일상적인 단어입니다.
비밀번호가 전부 숫자로 되어 있습니다.
Bypass password validation and create user anyway? [y/N]: y
비밀번호는 그냥 쉬운 것으로 해서 저런 안내가 뜨는데 그냥 적용했다.