본문 바로가기
Languages/Python

[Django] 블로그 사이트 프로젝트 2, 모델 - Djangogirls

by 김크롱 2020. 7. 25.

객체(Object)

 - 속성과 행동의 집합

ex:

사람

 - 성별

 - 키

 - 걷다

 - 먹다

 

속성 = 속성(properties)

행위 = 메소드(methods)

 

블로그의 속성

ex:

Post

 - title

 - text

 - author

 - created_date

 - published_date

 

 

 

장고 모델

 - 장고 안의 모델은 객체의 특별한 종류

 - 모델을 저장하면 데이터베이스에 저장됨

 

SQLite

 : 기본 장고 데이터베이스 어댑터

 

 

애플리케이션 생성

cmd

(myvenv) D:\git\djangogirls> python manage.py startapp blog

- blog 이름을 가진 애플리케이션 생성

 

 

Django에 생성한 blog 애플리케이션 사용 설정

mysite/settings.py

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

 

블로그 글 모델 만들기

 - 모든 Model 객체는 blog/models.py 파일에 선언해야함

 

blog/models.py

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

class Post(models.Model): #모델정의
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    	# ForeignKey: 다른 모델에 대한 링크
    title = models.CharField(max_length=200) # CharField: 200자로 제한된 텍스트
    text = models.TextField() # TextField: 글자 수 제한이 없는 긴텍스트
    created_date = modes.DateTimeField( # 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 # Post모델의 제목

 

데이터베이스에 Post 모델 추가

cmd

(myvenv) D:\git\djangogirls>python manage.py makemigrations blog

 

 

 

데이터베이스에 반영하기

 - migration file : 데이터페이스에 지금 반영할 수 있도록 해줌

 

cmd

(myvenv) D:\git\djangogirls> python manage.py migrate blog

 

 

 

 

https://tutorial.djangogirls.org/ko/django_models/

 

Django 모델 · HonKit

이번에는 블로그 내 모든 포스트를 저장하는 부분을 만들 거에요. 먼저 우리는 객체(object)에 대해서 조금 알고 있어야 해요. 프로그래밍 개발 방법 중에는 객체 지향 프로그래밍(object oriented progr

tutorial.djangogirls.org