728x90
반응형
모델 코딩 (models.py)
- Django에서는 모델이라는 파이썬 객체를 통해 데이터에 접속하고 관리한다.
- 모델: 저장된 데이터의 Schema를 정의한다.
- 모델은 models.py에서 정의되며 이들은 django.db.models.Model 을 상속받은 서브클래스로 구현된다.
from django.db import models
from django.urls import reverse
class Post(models.Model):
title= models.CharField(verbose_name='TITLE',max_length=50) #제목
description= models.CharField('DESCRIPTION', max_length=100, blank=True, help_text='simple description text.' )#요약
content= models.TextField('CONTENT') #글내용
create_dt= models.DateTimeField('CREATE DATE', auto_now_add=True) #생성날짜와 시간
modify_dt= models.DateTimeField('MODIFY DATE', auto_now=True )#수정날짜와 시간
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('blog:post_detail', args=(self.id,)) #id는 장고에서 자동으로 지원해준다
def get_prev(self):
return self.get_previous_by_modify_dt()
def get_next(self):
return self.get_next_by_modify_dt()
title: verbose_name은 컬럼에 대한 별칭으로 임의로 넣어주면 됨.
description: 공백가능하니까 blank=True
content: 블랭크 트루 또는 널 트루가 없다. 내용이 반드시 존재해야한다.
create_dt: auto_now_add 속성으로 생성시간을 django가 자동으로 기록하게한다.
modify_dt: auto_now 속성으로 django가 수정시간을 자동으로 기록
get_previous_by_modify_dt() : django에서 지원한다. modify_dt를 기준으로 이전의 포스트 객체를 리턴한다.
get_next_by_modify_dt() : modify_dt를 기준으로 다음 포스트 객체를 리턴해준다.
admin.py
- 만든 테이블을 admin site에 등록하는 과정
from django.contrib import admin
from blog.models import Post
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
list_display=('id','title','modify_dt')
admin.site.register() 대신 데코레이터 사용
list_display: admin site에 보여줄 항목들을 정의
터미널에서 python manage.py makemigrations 실행
python manage.py migrate //테이블이 db에 반영됨
Run server를 위한 환경설정
파이참 Run/Debug Configurations > + > Python > 이름설정(ex. BlogRun) > Script Path를 manage.py 경로로
> Parameters는 runserver 입력 > OK
실행시켜 /admin/ 접속후 확인하면 django에서 기본으로 제공하는 Groups, Users와 우리가 입력한 Posts를 확인할 수 있다. (Post에 s는 django가 자동으로 붙여준것이다. )
728x90
반응형
'웹 프로그래밍' 카테고리의 다른 글
[Django Tutorial] Blog 만들기 (6) (0) | 2021.04.19 |
---|---|
[Django Tutorial] Blog 만들기 (5) (0) | 2021.04.19 |
[Django Tutorial] Blog 만들기 (4) (0) | 2021.04.19 |
[Django Tutorial] Blog 만들기 (3) (0) | 2021.04.19 |
[Django Tutorial] Blog 만들기 (1) (0) | 2021.04.19 |