코딩공부/Python Django

[django 실습] 게시판 만들기 - model, admin 설정

integerJI 2020. 2. 16. 23:16

python django 게시판 만들기 - model, admin 설정

 

python django를 이용한 게시판 만들기 시작

 

word count 실습을 끝낸 상태에서 시작 하겠습니다.

 

mtv 패턴에서 드디어 m인 model 등장


vscode 설치하기 : https://integer-ji.tistory.com/65

python 설치하기 : https://integer-ji.tistory.com/64

git 설치하기 : https://integer-ji.tistory.com/66

 

vscode 설정하기 : https://integer-ji.tistory.com/81

hello world 띄우기 : https://integer-ji.tistory.com/82

git 초기 설정 : https://integer-ji.tistory.com/83

page 이동 : https://integer-ji.tistory.com/84

word count 실습 ( 1 ) : https://integer-ji.tistory.com/85

word count 실습 ( 2 ) : https://integer-ji.tistory.com/86


언제나 시작은 가상환경 실행, 디렉터리 이동

 

 

source myvenv/Scripts/activate

cd crudproject/

 

model 만들기

 

 

from django.db import models

class Blog(models.Model):
    title = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    body = models.TextField()

    def __str__(self):
        return self.title

 

mtv 패턴의 핵심인 model의 등장입니다.

 

crudapp/models.py에 class를 설정해 줍니다.

( class의 첫 글자는 꼭 대문자로 설정해 주세요. )

 

Blog 클래스 모델의 속성을 보면

 

title는 최대 길이가 200자인 charfield 이며

 

pub_date = 시간을 날짜와 시간으로 설정

 

body는 textfield인 긴 문자열로 생성한다는 뜻입니다.

 

def __str__은 Blog 클래스의 title를 보여줍니다.

( 이 함수의 사용은 admin 페이지에서 나옴 )

 

생성한 model 적용시키기

 

 

python manage.py makemigrations 

python manage.py migrate

 

입력해 줍니다.

 

python django에서 기본으로 설정되어있는 sqlite3에 우리가 만든 Blog 클래스를 알려주는 명령어 입니다.

 

makemigrations로 Blog class의 속성들을 DB가 알아듣게 바꿔주며

 

migrate는 알아들은 명령어를 적용하라는 뜻입니다.

 

 

admin에 model 등록하기

 

 

from django.contrib import admin

from .models import Blog

# Register your models here.
admin.site.register(Blog)

.models에서 Blog를 import

 

어드민 사이트에 class Blog를 추가

 

 

admin 계정 만들기

 

 

python manage.py createsuperuser

 

admin 계정 생성 명령어

 

아이디와 이메일 그리고 패스워드를 입력해 줍니다.

( 제 이메일은 무시해주세요 )

 

 

admin 페이지 접속

 

 

 

runserver 실행 후 http://127.0.0.1:8000/admin

 

로컬 주소 옆에 /admin을 입력하면 admin 로그인 페이지로 이동됩니다.

 

아까 create해준 admin 계정을 입력

 

 

 

 

admin.site로 등록한 models.py에서 만든 Blog가 출력되어 있습니다.

 

+ Add를 눌러 글을 적어 봅시다.

 

 

 

 

형식을 보면 models.py에서 설정한 그대로 생성 되었습니다.

 

내용을 입력 후 SAVE

 

 

 

그러면 블로그의 title가 출력됩니다.

 

이 출력됨의 이유는 models.py에서 title를 return했기 때문입니다.

 

def __str__ 함수가 없다면 ?

 

 

 

객체 번호로 출력

 

 

글 확인하기

 

 

 

타이틀을 보면 작성한 글을 확인할수 있습니다.

 

이제 이 models.py의 Blog 클래스를 가지고 crud를 이용한 게시판 만들기 진행합니다.

 

# 요약 정리

models.py에 클래스를 만들어 주었다면

makemigrations/migrate 해주기

DB에 적용을 해도 admin 사이트에서 확인하기 위해선 admin.site.register(클래스 이름)

admin 계정을 안만들었다면 createsuperuser

 

 

git push

 

 

git init

git add .

git commit -m "코멘트"

 

 

 

git push origin master

 

 

 

https://github.com/integerJI/djangoproject

 

 

 - 끝 -