Django 공식 문서로 공부하는 Django #2

이정욱·2022년 4월 25일
0

Djanguk

목록 보기
2/2

첫 번째 장고 앱 작성하기, part 2

Python에서 기본으로 제공하는 SQLite를 통해 데이터베이스를 다룬다.

모델 만들기

모델이란 데이터에 대한 단 하나의 확실한 정보 출처이다.

여론조사 앱에서 Question과 Choice라는 두 가지 모델을 만들게 된다.

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)

Django에서 모델은 클래스로 표현된다.
각 클래스 변수는 모델에서 데이터베이스 필드를 나타낸다.
데이터베이스의 각 필드는 Field 클래스의 인스턴스로서 표현된다. CharField는 character 필드를 표현하고, DateTimeField는 날짜와 시간 필드를 표현한다.
몇몇 Field 클래스들은 필수 인수가 필요하다.

그리고 ForeignKey를 사용하여 관계설정에 대해 설명한다.

  • Question은 질문이 무엇인지에 대한 question_text라는 CharField와 게시된 날짜를 나타내는 pub_date라는 DateTimeField로 이루어져 있다.
  • ChoiceQuestion 모델을 ForeignKey로 하는 question과 선택 메세지를 나타내는 choice_text라는 CharField, 선택수를 나타내는 IntegerFieldvotes로 이루어져 있다.

모델의 활성화

mysite에 있는 polls앱은 활성화&비활성화하며 꼈다뺐다 할수있다.

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',
]

INSTALLED_APPS 설정에 'polls.app.PollsConfig'를 추가해줘서 프로젝트에 polls앱을 활성화 해준다.

Django에서는 migration을 통해 모델의 변경 내역을 DB Schema로 다룬다. 마치 git처럼 모델의 변경 내역을 버전으로 관리한다.

그 이후에

python manage.py makemigrations polls

으로 polls라는 migration을 생성해준다.

Migrations for 'polls': 
	polls/migrations/0001_initial.py
    	- Create model Question
        - Create model Choice

라는 메세지가 뜨면서 Django에게 모델의 변경사항(model Question, Choice의 생성)을 전달해줍니다.

sqlmigrateapp_labelmigration_name을 인수로 받아서 해당 migration을 실행하지 않고 화면에 출력하여 확인할 수 있다.

API 가지고 놀기

python manage.py shell

Interactive Python shell을 통해 Django API를 다룰 수 있다.

명령어는 귀찮으니까 생략할래

1개의 댓글

comment-user-thumbnail
2023년 7월 25일

다음편은 없나요?

답글 달기