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)
데코레이터를 사용하지 않으면 위와 같이 어드민 사이트에 등록할 수도 있습니다.