프로그래밍/웹

Django 시작

asvv 2016. 12. 9. 05:56

# 1 MTV 패턴

MTV 패턴은 Model, Template, View 로 이루어져 있다.

Model은 데이터베이스에 저장되는 데이터를 의미하고, Template는 사용자에게 보여지는 부분을, View에서는 프로그램 로직이 동작하여 데이터를 가져오고 적절하게 처리한 결과를 템플릿에 전달하는 역할을 한다.

 

# 2 Django Model

Django에서 모델(Model)은 Django App안에 기본적으로 생성되는 models.py 모듈 안에 정의하게 된다.

models.py 모듈 안에 하나 이상의 모델 클래스를 정의할 수 있으며, 하나의 모델 클래스는 데이터베이스에서 하나의 테이블에 해당한다.

 

# 2.1 필드 타입

 

Field Type
설명
CharField
제한된 문자열 필드 타입, 최대 길이를 max_length 옵션에 지정해야한다.
TextField
대용량 문자열을 갖는 필드
IntegerField
32 비트 정수형 필드
BooleanField
True/ False 필드
DateTimeField
날짜와 시간을 갖는 필드
DecimalField
소숫점을 갖는 decimal 필드
BinaryField
바이너리 데이터를 저장하는 필드
FileField
파일 업로드 필드
ImageField
FileField 파생클래스로서 이미지 파일인지 체크한다.

 

# 3 Django View

Django에서 뷰(View) 필요한 데이터를 모델에서 가져와 적절히 가공하여 웹 페이지 결과를 만드는 역할을 한다.

 

# 3.1 뷰에서 모델 저장(INSERT)

데이터를 데이터베이스에 저장할 때 뷰에서 간단한 방식으로 해당 테이블에 저장한다.

 

1
2
3
4
5
6
7
8
9
10
11
from .models import MyClass
 
def create(request):
    mc = MyClass(
        name = "test",
        item1 = "item1",    
        item2 = "item2",
    )
 
    mc.save()
 
cs

 

# 3.2 뷰에서 모델 불러오기(SELECT)

Django는 기본적으로 모든 Django 모델 클래스에 대해 "objects"라는 Manager 객체를 자동으로 추가한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 테이블내에 데이터를 전부 가져온다.
mc_all = MyClass.objects.all()
 
# 테이블내에 primary key(pk)값이 1 인 레코드를 가져온다.
mc_get = MyClass.objects.get(pk=1
 
# 테이블내에 "name"이라는 속성이 "test"인 것들을 가져온다.
mc_filter = MyClass.objects.filter(name="test")
 
# 테이블내에 "name"이라는 속성이 "test"인 것들을 제외하고 가져온다.
mc_exclude = MyClass.objects.exclude(name="test")
 
# 테이블내의 데이터의 개수를 가져오기 위해 사용하는 메서드이다.
mc_count = MyClass.objects.count()
cs

 

# 3.3 뷰에서 모델 삭제(DELETE)

 

1
2
mc = MyClass.objects.get(pk=1)
mc.delete()
cs

 

반응형

'프로그래밍 > ' 카테고리의 다른 글

[javascript] Array method  (0) 2016.12.09