Notice
Recent Posts
Recent Comments
Tags
- 코딩테스트 연습
- 장고 기초
- 프로그래머스 레벨2
- dp 알고리즘
- 프로그래머스
- 프로그래머스 level1
- 백준 다이나믹프로그래밍
- 알고리즘 문제
- 전화번호 목록 python
- Spring 초보
- 코딩테스트
- 프로그래머스 전화번호 목록 python
- programmers
- 스프링 기초
- 바닥장식 파이썬
- 프로그래머스 전화번호 목록 파이썬
- 프로그래머스 레벨1
- Django
- 코테 연습
- 장고
- 프로그래머스 알고리즘 고득점 kit
- 프로그래머스 고득점 kit
- 코테
- 백준
- 스프링 초보
- spring 기초
- Django 기초
- 알고리즘 공부
- 백준 dp
- 백준 바닥장식 python
Archives
- Today
- Total
일일구름 IT
[Django] DataBase 테이블 생성, 모델 생성 본문
테이블 생성
(cmd)py manage.py migrate
→ 보통 최소 하나 이상의 테이블을 사용하기 때문에, 데이터 베이스에서 테이블을 미리 만들 필요가 있다. 테이블을 생성하는 명령어
→ 가상 환경을 실행하고 작업할 프로젝트 위치에 들어간 후, 명령어를 cmd 창에 작성한다.
모델 생성
# polls/models.py
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
데이터 타입 : CharField(문자 타입), DateTimeField(시간 타입), IntergerField(정수 타입), ForeignKey(외래키)
여기서 ForeignKey는 Question 모델을 참조하겠다는 뜻으로, Choice 클래스 내에서 question 변수는 Question 모델을 가리키고 있다는 의미이다.
on_delete=models.CASCADE : Question이 삭제가 되면 Choice에 있는 question도 삭제가 됨
모델 활성화
# mysite/settings.py
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
위를 통해 polls 앱을 프로젝트 앱에 포함
polls.apps.PollsConfig : INSTALLED_APPS에 polls 폴더 안의 apps.py에 있는 PollsConfig 파일을 등록
makemigrations
(cmd)py manage.py makemigrations [모델명]
→ 모델을 변경 또는 생성한 사실과 이 변경사항을 migration으로 저장하고자 함을 django에게 알림
→ 데이터 베이스 내에 테이블을 생성할 수 있도록 설계도를 만드는 작업
migrate
(cmd)py manage.py migrate
→ 아직 적용되지 않은 migration을 수집해 데이터베이스에 실제 테이블을 생성
'Django' 카테고리의 다른 글
[Django] 관리자 생성 (admin) (0) | 2024.03.01 |
---|---|
[Django] Git 사용 (0) | 2024.03.01 |
[Django] 환경 설정 (0) | 2024.03.01 |