App(앱)
웹 사이트를 기능별로 구분해놓은 단위를 뜻함
먼저 새로운 앱 하나를 만들려고 하면, 명령 프롬프트 창에서 그 앱이 구현하는 기능을 이름으로 만들면 좋다.
여기서는 게시물을 걸어놓는 판 기능을 만들기 위해 board를 이름으로 만들어 진행한다.
cmd\Desktop\HelloDjango> python manage.py startapp board
이렇게 명령어를 치면
board라는 폴더가 하나 새로 생기게 된다.
그럼 이제 board라는 앱이 새로 하나 생겼다는것을 알려주기 위해
HelloDjango의 settings.py에서 INSTALLED_APPS부분에 만든 앱을 추가해 주어야 한다.
이제 새로 만든 앱인 board의 기능을 위해서 필요한 값들을 정한다.
게시물의 썸네일에는 썸네일 사진 하나에 게시물 제목, 게시물 업로드 시간, 게시물 수정 시간, 게시물 조회 수 등이 필요할 것이다.
그리고 게시물은 그 게시물의 내용이 필요할 것이다.
이런 내용들을 테이블로 만들기 위해서 클래스 형태로 작성해야 한다.
그 전에 클래스 안의 field 정보는 밑의 링크를 참고하여서 만들면 좋다.
https://docs.djangoproject.com/en/3.0/ref/models/fields/#field-types
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')
클래스 작성이 다 끝나게 되면, 이제 이 클래스를 테이블 형태로 만들어서 DB에 저장해야 한다.
cmd\Desktop\HelloDjango> python manage.py makemigrations
위의 사진처럼 나오면, board > migrations > 0001_initial.py라는 파일이 하나 만들어 졌을 것이다.
이 파일이 아까의 클래스를 테이블 형태로 만들어 놓은 것이다.
이제 저 파일을 DB에 테이블로 만들면 된다.
cmd\Desktop\HelloDjango> python manage.py migrate
이렇게 해서 별 다른거 없이 다 OK로 끝나면, 성공적으로 Boards라는 테이블이 DB에 만들어 졌다는 것이다.
'Python > Python_Django' 카테고리의 다른 글
[Python_Django] 관리자 계정에서 테이블 관리하기 (0) | 2020.02.01 |
---|---|
[Python_Django] 관리자 계정 만들기 및 ORM 사용하기 (3) | 2020.01.31 |
[Python_Django] 장고 서버 실행 및 접속 (0) | 2020.01.30 |
[Python_Django] 장고 콘솔 사용 명령어 (1) | 2020.01.10 |