728x90
반응형

 

 지난 포스팅을 통해 앱 만들기의 기본 세팅을 완료했다. 지난 포스팅에 이어 계속해서 Django 공식 튜토리얼을 토대로 참고 자료로 내용을 덧붙여 포스팅하도록 하겠다.


2021.06.08 - [BACK-END/Django] - [Django] admin 커스터마이징 / MySQL 연동

 

[Django] admin 커스터마이징 / MySQL 연동

2021.06.07 - [BACK-END/Django] - [Django] 파이참 설치하고 장고 개발 서버 실행하기 [Django] 파이참 설치하고 장고 개발 서버 실행하기 2021.06.07 - [BACK-END/Django] - [Django] cmd로 가상환경 만들기 /..

hello-ming.tistory.com

이 포스팅 이후의 작업이다.

 

django를 이용해서 웹 사이트에서 투표하는 것을 만들 것이라

 

model은 2가지가 필요하다. Question과 Choice

 

Question은 질문이고 Choice는 선택해서 투표가 몇 번 되었는지 확인할 수 있게 진행할 것이다.

 

models.py

from django.db import models


# Create your models here. 모델만들기
class Question(models.Model):
    question_text = models.CharField(max_length=200) #데이터 타입 문자열
    pub_date = models.DateTimeField('date published') #데이터 타입 날짜

    def __str__(self):
        return self.question_text


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE) # 칼럼은 외래키로 Question과 연결됨
    choice_text = models.CharField(max_length=200) #문자열
    votes = models.IntegerField(default=0) #정수

    def __str__(self):
        return self.choice_text

    # 테이블 두개 만드는 것 부모테이블 자식테이블

 

이제 터미널에서 migrations와 migrate를 해주면 된다.

 

 

migrations

 

모델 변경 내역 히스토리 관리

 

- 모델의 변경내역을 DB Schema(데이터베이스 데이터 구조)로 반영시킨다.

 

터미널에서 아래의 코드를 적용시킨다.

python manage.py makemigrations 

 

만약 오류가 뜬다면 아래의 포스팅에 해결방법을 써놔서 참고하면 된다.

 

2021.06.10 - [Tip] - [Django] python manage.py makemigrations 에러 no changes detected

 

[Django] python manage.py makemigrations 에러 no changes detected

python manage.py makemigrations 하는데 오류가 떴다... no changes detected 에러 발생 이유는 연동된 database에서 변경된 부분이 없을 때 발생한다고 한다... 해결방법은 setting.py의 INSTALLED_APPS에 추가..

hello-ming.tistory.com

 

migrations 적용 후 migrate는 아래의 코드를 터미널에 적용하면 된다.

 

python manage.py migrate

 

정리를 해보면

1. 마이그레이션 파일(초안) 생성하기 : makemigrations

 

2. 해당 마이그레이션 파일을 DB에 반영하기 : migrate

 

터미널에서 코드를 다 적용시킨 후 polls - migrations 폴더를 확인해 보면. py 형식의 파일이 새로 생겼음을 알 수 있다.

 

 

터미널에 runserver을 돌려 url에 들어가 /admin을 해주면

 

python manage.py runserver

 

polls 앱에 Choices와 Questions 모델이 생성됨을 확인할 수 있다.

 

다음 포스팅은 기능을 추가하여 직접 투표할 수 있도록 해보겠다!

728x90
반응형

+ Recent posts