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

비밀번호는 그냥 쉬운 것으로 해서 저런 안내가 뜨는데 그냥 적용했다.