# 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 |
---|