Django

[BookmarkApp] models.py 작성

eunyeong 2022. 1. 13. 00:44

장고에서는 테이블을 하나의 클래스로 정의하고, 테이블의 컬럼은 클래스의 변수로 매핑합니다. 테이블 클래스는 django.db.models.Model 클래스를 상속받아 정의하고, 각 클래스 변수의 타입에도 장고에서 미리 정의해 둔 필트 클래스를 사용합니다.

from django.db import models

class Bookmark(models.Model):
    title = models.CharField('TITLE', max_length=100, blank=True)
    url = models.URLField('URL', unique=True)

    def __str__(self):
        return self.title

- title 컬럼은 공백(blank)를 가질 수 있습니다.

- URLField() 필드 클래스의 첫번째 파라미터는 url 컬럼에 대한 별칭입니다. 

- __str()__ 함수는 객체를 문자열로 표현할 때 사용하는 함수입니다. 장고에서 모델 클래스의 객체는 테이블에 들어 있는 레코드 하나를 의미합니다. 

 

admin 사이트에 테이블 반영

from django.contrib import admin
from bookmark_service.models import Bookmark

@admin.register(Bookmark)
class BookmarkAdmin(admin.ModelAdmin):
    list_display = ('id', 'title', 'url')

Bookmark 내용을 보여줄 때 id. title, url을 화면에 출력하라고 지정했습니다.

@admin.register() 데코레이터를 사용하여 어드민 사이트에 등록합니다.

admin.site.register(Bookmark, BookmarkAdmin)

데코레이터를 사용하지 않으면 위와 같이 어드민 사이트에 등록할 수도 있습니다.