Djangogirls blog 앱 생성 및 관리자에 추가

Djangogirls blog 앱 생성

Django 프로젝트 생성

>>> python manage.py startapp blog
# pycharm에서 app 폴더안에 blog 폴더 생성

config -> settings.py -> INSTALLED_APPS -> 'blog' 입력
# blog라는 패키지를 관리 모듈로 추가하겠다는 의미

git commit하기

git add -A
git commit -m 'blog app추가 및 INSTALLED_APPS에 등록

git branch 나눠서 작업

git branch blog-model
git checkout blog-model

블로그 글 모델 만들기

from datetime import timezone
from django.db import models
from django.conf import settings

# 엑셀로 치면 빈 시트에 이름 하나씩 채우는거라 생각하면 됨.
class Post(models.Model):
    author = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
    )
    title = models.CharField(max_length=200)
    text = models.TextField(blank=True)
    created_date = models.DateTimeField(default=timezone.now)
    published_date = models.DateTimeField(blank=True)
    
	# post 클래스의 인스턴스 메서드
    # published_date에 timezone.now를 호출한 값을 넣어주고 
    # 세이브를 해준다.
    def publish(self):
        self.published_date = timezone.now()
        self.save()

    # 객체를 문자열로 표현하고 싶다.
    # python에서 __repr__과 같은 의미
    # title이 문자열로 바로 표현됨. 없으면 표현 안됨.
    def __str__(self):
        return self.title
  • 아래와 같이 2가지 단계로 나누어짐.
    • 데이터베이스의 변경사항을 적용하기 위해 기록하는것
    • 데이터베이스의 변경사항을 적용하는것

데이터베이스의 변경사항을 기록하기

>>> python manage.py makemigrations

# migration은 데이터베이스의 변경사항
Migrations for 'blog':
  blog/migrations/0001_initial.py
    - Create model Post

데이터베이스의 변경사항을 기록하기

>>> python manage.py migrate

git commit 후 master branch로 merge후 blog-model branch제거

git add -A
git commit -m 'Post 모델 추가 및 migration 생성'
git checkout master
git merge blog-model
git branch -d blog-model
git log --oneline --all --graph

admin 브랜치 생성 및 admin.py에 내용입력

git checkout -b admin

migrations의 admin.py 파일 열기
아래 내용 입력

from django.contrib import admin

from .models import Post

admin.site.register(Post)

python manage.py runserver 입력
 창에 localhost:8000/admin 입력하여 정상작동하는지 확인

admin 관리자 페이지 로그인 정보 만들기

python manage.py createsuperuser

Username과 Password 정보 입력

urls.py 에 내용 입력

urls.py 파일 열기
urlpatterns에 url(r'', include('blog.urls')) 입력

git commit 및 admin branch 제거

git add blog/admin.py
git commit -m 'Post모델을 admin에 추가'
git checkout master
git merge admin
git branch -d admin

Reference

Djangogirls

Comments