model만들기(db에 table생성 작업)

2021. 7. 21. 21:38python/Django

728x90


polls - models.py 들어가기


 

#model 작업은 우리가 사용하는 데이터베이스에 Table을 생성하는 작업
#polls application은 question, choice table 두개 테이블 사용

 

-id는 명시하지 않아도 자동으로 잡힌다


-class이름은 table명, 첫글자 대문자


-class를 만들려면 반드시 정해져 있는 class(models.Model)을 상속해야 해요!
(data table과 mapping)


-class의 propery가 table의 colum명=>class variable 이용 즉 변수


-변수안에는 데이터타입 method(modes의)


-foreignkey() 안에 들어갈 class명을 적는다

 

(def __str__(self):
return self.choice_text

=
-class의 instance가 table의 하나의 record(row)와 1:1 매핑되요!
admin page에서 이 table의 내용을 볼수 있는데 객체형태로 보이게 되요!

-class가 table을 명시하고
admin에서 table내용을 확인하는데
table은 class와 mapping이 되고
recod는 instance와 mapping이 된다
webpage에서 instance(객체)는 주소값이 화면에 찍히기때문에
magic method __str__을 이용한다)

#foreignkey(외래키는 두 테이블을 서로 연결하는 데 사용되는 키)는 컬럼명이 될 때 현재 명시한 class variable의 이름에 + '_id' 붙여서 컬럼명이 된다!

cascade(전파하다):foreignkey에서 부모,자식table 각각 지워야하는데 이 작업이 번거로워 연동해주는 작업 (on_delete=models.CASCADE)

#default=값이 안들어가면 -를 써라라는 의미

 

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

form django.db import models
는 모델을 만들게 도와준다

class Question(models.Model):
question_text = model.CharField(max_length=200)
pub_date = models.DateTimeField()

def __str__(self)
return self.question_text

 


class Choice(models.Model):

choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0) 
question = models.ForeignKey(Question, on_delete=models.CASCADE)

def __str__(self):
return self.choice_text

'python > Django' 카테고리의 다른 글

url cof , view  (0) 2021.07.22
admin page에 model(data) 등록하기  (0) 2021.07.21
Django 초반설정  (0) 2021.07.21
Django setting  (0) 2021.07.21
poll project 파일 구조  (0) 2021.07.21