본문 바로가기

Python/Python_Django

[Python_Django] 앱 만들기 및 DB 테이블 만들고 확인하기

App(앱)
웹 사이트를 기능별로 구분해놓은 단위를 뜻함

먼저 새로운 앱 하나를 만들려고 하면, 명령 프롬프트 창에서 그 앱이 구현하는 기능을 이름으로 만들면 좋다.

여기서는 게시물을 걸어놓는 판 기능을 만들기 위해 board를 이름으로 만들어 진행한다.

cmd\Desktop\HelloDjango> python manage.py startapp board

이렇게 명령어를 치면

board라는 폴더가 하나 새로 생기게 된다.

그럼 이제 board라는 앱이 새로 하나 생겼다는것을 알려주기 위해

HelloDjango의 settings.py에서 INSTALLED_APPS부분에 만든 앱을 추가해 주어야 한다.

HelloDjango > settings.py


이제 새로 만든 앱인 board의 기능을 위해서 필요한 값들을 정한다.

게시물의 썸네일에는 썸네일 사진 하나에 게시물 제목, 게시물 업로드 시간, 게시물 수정 시간, 게시물 조회 수 등이 필요할 것이다.

그리고 게시물은 그 게시물의 내용이 필요할 것이다.

이런 내용들을 테이블로 만들기 위해서 클래스 형태로 작성해야 한다.

그 전에 클래스 안의 field 정보는 밑의 링크를 참고하여서 만들면 좋다.

https://docs.djangoproject.com/en/3.0/ref/models/fields/#field-types

 

Model field reference | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

board > models.py
from django.db import models

# Create your models here.

class Boards(models.Model):
    title = models.CharField(max_length = 100)
    Thumbnail = models.ImageField(upload_to="image")
    content = models.TextField()
    view_count = models.IntegerField(default = 0)

    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

 그리고 이미지 파일을 저장할 때는HelloDjango 폴더안에 settings.py 에서 또 다른 설정을 해주어야 한다.

HelloDjango > settings.py
# 맨 밑에 이 코드를 추가

MEDIA_URL = '/media/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

HelloDjango > settings.py


클래스 작성이 다 끝나게 되면, 이제 이 클래스를 테이블 형태로 만들어서 DB에 저장해야 한다.

cmd\Desktop\HelloDjango> python manage.py makemigrations

위의 사진처럼 나오면, board > migrations > 0001_initial.py라는 파일이 하나 만들어 졌을 것이다.

이 파일이 아까의 클래스를 테이블 형태로 만들어 놓은 것이다.

board > migrations > 0001_initial.py

이제 저 파일을 DB에 테이블로 만들면 된다.

cmd\Desktop\HelloDjango>  python manage.py migrate

이렇게 해서 별 다른거 없이 다 OK로 끝나면, 성공적으로 Boards라는 테이블이 DB에 만들어 졌다는 것이다.