2013. 11. 8. 17:03ㆍProgramming/python
해당 글은 python과 mysql이 설치되어 있다는 가정 하에서 진행합니다.
python pip를 통해 django를 설치 합니다.
sudo pip install django
설치가 완료되었으면, 제대로 설치되었는지 확인해 봅니다.
쉘에서 django-admin.py 명령을 쳤을 때 명령어 목록이 출력되면 django가 제대로 설치 된 것입니다.
이제 django로 관리할 프로젝트 폴더를 하나 만들고, 해당 폴더로 이동한 후 아래와 같이 입력합니다.
$> mkdir testProject
$> cd testProject
$> django-admin.py startproject testProject
위와 같이 만들면 testProject 안에 testProject라는 폴더가 하나 더 생성이 되고, 해당 폴더 안에는 testProject 폴더와 manage.py 파일이 생성됩니다. testProject 폴더 안에는 __init__.py, settings.py, urls.py, wsgi.py 파일이 생성되는 것을 확인 할 수 있습니다.
우선 django 서버를 실행 시켜봅니다.
$> python manage.py runserver
아직 아무런 설정도 하지 않았기 때문에 서버 화면은 127.0.0.1:8000을 통해 확인해 볼 수 있습니다.
이제 Django 프로젝트 안에 앱을 등록해야 합니다. 아래와 같이 쉘에 입력합니다.
$> python manage.py startapp "앱이름"
앱이 성공적으로 만들어지면 앱이름을 가진 폴더가 생성되며, 폴더 안에는 models, views, tests python 파일이 생성됩니다.
models 파일에는 DB와 관련된 모델을 기입, views에는 html에 렌더링 될 정보를 기입합니다.
여기서는 views는 다루지 않고 DB 연동만 다룰 예정이어서 models 파일만 수정하도록 합니다.
from django.db import models
from django.contrib import admin
# Create your models here.
class DjangoTest(models.Model) :
userID = models.CharField(max_length=20, db_column='userID')
contents = models.CharField(max_length=255, db_column='contents')
accessTime = models.DateTimeField(db_column='accessTime')
class Meta :
db_table = 'DjangoTest'
def __unicode__(self) :
return "%s %s" %(self.id, self.userID)
class DjangoTestAdmin(admin.ModelAdmin):
list_display = ["id", "userID", "contents", accessTime"]
search_fields = ["userID"]
DjangoTest와 DjangoTestAdmin이라는 클래스를 생성하였습니다.
DjangoTest Class는 DB의 한 테이블로써 다루게 될 내용들을 기입하였으며, DjangoTestAdmin Class는 DjangoTest의 Admin으로써 다루게 될 내용들을 기입하였습니다.
간략하게 필드는 userID와 contents, accessTime만 생성하였습니다.
이제 admin.py를 열어서 방금 생성한 DjangoTest 클래스와 DjangoTestAdmin 클래스를 등록해야 합니다.
from django.contrib import admin
from polls.models import *
# Register your models here.
admin.site.register(DjangoTest, DjangoTestAdmin)
아까 보았던 프로젝트의 settings.py 파일을 수정해서 DB와의 sync를 맞춥니다.
settings.py 내에 DATABASES와 LANGUAGE_CODE, TIME_ZONE을 수정합니다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': database 명,
'USER': 사용자명,
'PASSWORD': 암호,
'HOST' : '',
'PORT' : '',
}
}
LANGUAGE_CODE = 'ko-KR'
TIME_ZONE = 'Asia/Seoul'
모든 설정이 끝났으면, 쉘에 db와의 sync를 맞추겠다는 명령을 전달합니다.
$>python manage.py syncdb
자동적으로 해당 Table과 column들을 생성하는 것을 볼 수 있습니다.
(만약 error가 발생했을 시엔 python에 mysqldb 플러그인이 있는지 확인해 보도록 합니다.)
다시 Django 웹서버를 시작하면, 아래와 같이 db 화면이 연결되어 있는 것을 확인 할 수 있습니다.