본문 바로가기

Python/Python(Django)

Django Tutorial part1. (프로젝트 생성, Model 정의)

원문 : https://docs.djangoproject.com/en/1.5/intro/tutorial01/

 


0. 장고(Django)를 깐다 (https://docs.djangoproject.com/en/1.5/topics/install/)

(이클립스에 PyDev 플러그인이 깔려있다고 가정한다.)




1. mysite 라는 이름으로 Django 프로젝트를 생성한다.





2. 아래 사진과 같은 파일들이 생성된다.

- manage.py : Django 프로젝트를 관리하기 위한 utility. 자세한 내용은 (https://docs.djangoproject.com/en/1.5/ref/django-admin/)

- mysite/settings.py : Django 프로젝트와 관련된 세팅 정보

- mysite/urls.py : URL 패턴을 정의

- mysite/wsgi.py : WSGI 웹서버로의 진입 시점(?) 자세한 내용은 (https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/)




3. mysite 프로젝트를 우 클릭 해서 Run As > PyDev:Django 를 선택해서 서버를 실행한다.



아래와 같은 로그가 나온다


접속 확인!!




4. mysite/setting.py 파일을 열어서 Database를 세팅한다.


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'D:\\99 eclipse\\forPython\\workspace\\mysite\\src\\sqlite.db',                      # Or path to database file if using sqlite3.
        # The following settings are not used with sqlite3:
        'USER': '',
        'PASSWORD': '',
        'HOST': '',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
        'PORT': '',                      # Set to empty string for default.
    }
}

- ENGINE : 데이터 베이스 별로 골라서 사용한다.

'django.db.backends.postgresql_psycopg2'

'django.db.backends.mysql'

'django.db.backends.sqlite3'

'django.db.backends.oracle'

- NAME : 데이터베이스 명 SQLite의 경우 db 파일의 절대 경로

- USER / PASSWORD : 사용자 비밀번호

- HOST / PORT : 서버 주소, port




5. 설정한 DB의 기초 자료를 생성한다.

명령어는 (python manage.py syncdb)

이클립스는 아래와 같이 처리



슈퍼유저 생성



6. mysite/setting.py 파일을 열어서 TIMEZONE을 설정한다. (참고 : http://www.postgresql.org/docs/8.1/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE)

TIME_ZONE = 'America/Chicago'




7. mysite라는 프로젝트 안에 polls 라는 앱을 추가해보자.

명령어는 python manage.py startapp polls

이클립스는 아래와 같이




polls 라는 app이 추가 된것을 확인 할 수 있다.





8. polls/models.py를 작성하자

from django.db import models

# Create your models here.
class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    
    
class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default = 0)

django.db.models.Model 클래스를 상속받아 작성하며 DB의 필드에 대응되는 변수들을 가진다. 각 변수는 Field 클래스의 인스턴스로 정의된다. 자세한 내용은 (https://docs.djangoproject.com/en/1.5/howto/custom-model-fields/#django.db.models.Field)




9. polls 앱을 INSTALLED_APPS 에 추가한다.

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    # 'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    'polls',
)

python manage.py sql polls

python manage.py syncdb

를 차례로 실행시킨다.

이클립스는 아래와 같이...






이렇게 하면 sqlite.db 파일이 생성되는것을 확인 할 수 있다.




반응형