본문 바로가기
App Programming/Django

[Django] Books 어플리케이션 (1)

by goatlab 2023. 6. 27.
728x90
반응형
SMALL

프로젝트에 books 앱 추가

 

python manage.py startapp books

 

setting.py : 어플리케이션 등록 (서버에 반영)

 

INSTALLED_APPS = [
    "books.apps.BooksConfig", # 새로 만든 앱 추가
    "polls.apps.PollsConfig",
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
]

 

models.py

 

데이터베이스에 사용할 데이터들의 형태를 정리하기 위해 books 폴더의 models.py를 다음과 같이 수정한다.

 

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    authors = models.ManyToManyField("Author")
    publisher = models.ForeignKey("Publisher", on_delete=models.CASCADE)
    publication_date = models.DateField()

    def __str__(self):
        return self.title

class Author(models.Model):
    name = models.CharField(max_length=50)
    salutation = models.CharField(max_length=100)
    email = models.EmailField()

    def __str__(self):
        return self.name

class Publisher(models.Model):
    name = models.CharField(max_length=50)
    address = models.CharField(max_length=200)
    website = models.URLField()

    def __str__(self):
        return self.name

 

앞서 polls 어플리케이션을 만들었듯이 터미널을 myproject로 위치시키고 다음을 입력한다.

 

python manage.pt makemigrations books
python manage.py migrate

 

admin

 

새로 만든 데이터 (model) 관리를 위해서 admin 사이트에 등록한다.

 

from django.contrib import admin
from books.models import Book, Author, Publisher

admin.site.register(Book)
admin.site.register(Author)
admin.site.register(Publisher)

 

그 다음, 테이블을 데이터베이스에 반영한다.

 

python manage.py makemigrations books
python manage.py migrat
728x90
반응형
LIST

'App Programming > Django' 카테고리의 다른 글

[Django] 웹 서버 연동 원리  (0) 2023.06.28
[Django] Books 어플리케이션 (2)  (0) 2023.06.27
[Django] 폼 (Form)  (0) 2023.06.27
[Django] 템플릿 시스템 (2)  (0) 2023.06.26
[Django] 템플릿 시스템 (1)  (0) 2023.06.26