첫번째 Tutorial로 Django설치에 대한 설명이 나와 있는데 그 부분에 대해서는 매우 쉽게 나와 있기 때문에 넘어가고 두번쨰 Tutorial인 Setting.py and database models에 대한 Tutorial에 대한 내용을 정리하고자 한다.

이클립스에서 pydev를 설치하고 나서 Django 프로젝트를 만들면 다음과 같은 구조가 만들어진다.

MVT구조에 대해서는 별도로 언급하지 않겠다.

이러한 구조 내에서 전체 파일들 간 관계를 settings.py를 통해서 진행한다.

위 동영상 Tutorial에서 진행하는 순서대로 훝어보면 우선 Database 설정에 대해서 설명한다.

Database에 대한 설정은 ENGINE에 어떤 type의 database를 쓸지에 대해 작성을 하는 곳인데, 내장 db인 sqlite3를 쓸 경우 아래와 같이 작성하면된다.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

그 외에도 시간, 언어 등 시시콜콜한 내용에 대한 설명이 들어가 있다.

그 후에 App을 만드는 설명이 나오는데, Tutorial에 나와 있는 것처럼 cmd 창에서 manage.py startapp [app 이름] (ex. manage.py startapp article)을 넣는 것도 되고, 이클립스를 쓸 경우에는 다음과 같이 만들어도 된다.  

 

 위 경로를 실행하고 app의 이름을 입력하면 아래와 같이 폴더와 파일들이 자동으로 생성된다.

만들어진 각각의 파일들이 작동하는 프로세스와 핵심 파일들의 역할만 설명하면 다음과 같다.

 

 

  • django_test/urls.py : 브라우저를 통해서 request된 url들의 요청을 받아서 views.py에 들어있는 class로 넘겨주는 역할을 담당
  • article/views.py  : urls.py를 통해서 넘겨받은 요청을 어떻게 처리해서 보여줄지를 결정하는 역할을 담당.
  • article/ models.py : views.py를 통해서 들어온 요청 중 database를 통해서 처리되어야 할 것들이 있을 경우 models.py를 통해 만들어진 db와 연결하여 처리하도록 한다. 즉 models.py는 database를 만들고, views.py에서 db와 뭔가 할게 생길 경우 중간을 연결하는 역할을 담당한다고 보면 된다.

암튼 여기까지 왔으면 Django를 사용할 준비는 어느정도 되었다.

우선 models.py를 사용하는 방법부터 알아보자. 위에서 말했듯이 models.py에서는 db파일을 만들게 된다.

예제로 나온 파일은 다음과 같다.

 

from django.db import models

# Create your models here.
class Article(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    pub_date = models.DateTimeField('date published')
    likes = models.IntegerField()

(참괴: https://docs.djangoproject.com/en/1.6/topics/db/models/ )

각각의 class들은 db에서 각각의 table을 담당한다. 따라서 class Article이라고 할 경우 db에는 Article이라는 Table 생성된다.

class안에 각각의 행들은 db안에 만들어진 각 열들의 이름과 속성을 설정하는데, 이름이야 자기맘대로 지으면 되지만, 속성을 설정하는 부분은 아리까리 한 부분이 있다. 그렇기 떄문에 일단 Tutorial에 나와 있는 Refrence를 참조하고 추가적인 공부가 필요한 사람은 다음을 참고 바란다. (https://docs.djangoproject.com/en/1.6/ref/models/fields/#model-field-types)

  • CharField : 크고 작은 문자열 데이터를 받음. 그러나, 큰 size의 문자열 데이터를 받을 경우 TextField를 사용할 것을 권장함.
  • TextField: 큰 size의 문자열 데이터를 받을 경우 사용
  • DateTimeField : 날짜 데이터를 받을 때 사용
  • IntegerField: 정수 데이터를 받는 경우 사용

위와 같이 models.py를 작성하고 cmd 창에 들어가서 manage.py syncdb 를 입력하면 database파일이 만들어진다.

django project에 대한 최고 권한을 설정하는 것을 물어보는데

꼭 설정해 놓도록 한다.

강좌 마지막에 shell 화면을 열고 직접 db와 통신하는 방법을보여주는데, 나중에 views.py 에서 db를 사용하는 방법을 이해하는데 많은 도움이 되므로 반드시 보도록 한다.

 

+ Recent posts