일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 실습
- 종합설계
- codetree
- BFS
- 파이썬
- 소프트웨어공학
- 최소스패닝트리
- DFS
- SQL
- minimum spanning tree
- 그리디알고리즘
- Kruskal
- 함밥
- 마라마라빔
- 동적계획법
- B대면노래방
- 백트래킹
- 프로그래머스
- 장고
- 알고리즘
- Planned
- django
- 백준
- 모각코
- Bellman-Ford
- 코드트리
- 데이터베이스
- MyPlaylist
- programmers
- DP
- Today
- Total
Leta Learns
django | Model & Admin 본문
models.py
from django.db import models
# Create your models here.
class Blog(models.Model):
title = models.CharField(max_length=200)
writer = models.CharField(max_length=10)
pub_date = models.DateTimeField()
body = models.TextField()
1. django의 DB로부터 models라는 모듈을 import (기본 세팅되어있음)
2. 클래스명은 항상 대문자로 시작.
models.Model => 위에서 import한 models라는 모듈 안에 있는 Model이라는 클래스를 상속.
3. 필드타입 및 필드옵션은 외울 필요 x, 그때그때 찾아서 쓰면 됨.
in 문자열, CharField() => max_length 사용하여 최대 글자 수를 반드시 정해줘야 함.
in 생성시간, DateTimeField() => 날짜와 시간 데이터 저장하는 필드
in 본문, TextField()
$ python manage.py makemigrations
#migration을 make한다. 앱 내에 migration 폴더를 만들어서 models.py의 변경사항을 저장.
$ python manage.py migrate
#migration에 저장되어 있는 것들을 실행시켜서 DB에 적용한다.
=> models.py에 변경사항이 생겼을 경우 makemigrations, migrate 꼭 해주어야 함!
migrate 하는 이유 : 모델에서 정의한 클래스(ORM)를 DB에 적용하기 위해.
=> 메소드의 경우 DB랑 연관된 것이 아니라 장고 내부적으로 처리하는 거라서 migrate 필요 x
models.py의 변경사항이 메소드 관련일 경우 => makemigrations, migrate 안 해도 됨.
$ python manage.py createsuperuser
#관리자 권한을 가진 superuser 만들기
관리자 페이지에 들어오면 위에서 만든 Blog 테이블은 존재 x
=> models에게 우리가 Blog를 등록했다는 것을 알려줘야 함.
admin.py (=> Model 등록하기)
from django.contrib import admin
from .models import Blog #같은 폴더(.)안에 있는 models 모듈에서 Blog 앱을 import
# Register your models here.
admin.site.register(Blog)
글 작성하면 Blog object(1) 의 형태로 뜬다. => models.py 들어가서 수정!
from django.db import models
# Create your models here.
class Blog(models.Model):
title = models.CharField(max_length=200)
writer = models.CharField(max_length=10)
pub_date = models.DateTimeField()
body = models.TextField()
def __str__(self):
return self.title
__str__ 메소드 : 인스턴스 자체를 출력할 때 형식을 지정하는 함수
시간 수정 => settings.py TIME_ZONE = 'Asia/Seoul'
'Django' 카테고리의 다른 글
django | CRUD - Create (0) | 2021.07.07 |
---|---|
django | CRUD - Read (0) | 2021.07.06 |
django | 기본 틀 정리 (가상환경, 장고 설치, 서버 실행 etc) (0) | 2021.07.06 |
[점프 투 장고] 2-10 질문 등록 기능 만들기 (0) | 2021.07.03 |
[점프 투 장고] 2-05 ~ 2-07 (0) | 2021.07.03 |