전체 페이지뷰

2016년 11월 23일 수요일

Write your first Django App, part 1

Requests and Responses


장고 걸스 튜토리얼장고 공식 튜토리얼, 김석훈 님이 지으신  "파이썬 웹 프로그래밍: 실전편" 도서를 참고하여 공부를 진행해 보겠습니다.


여기서는 공식 사이트와는 조금 다르게 가상환경 속에서 만든다는 가정하에 시작하므로,
콘솔창에서 (myvenv)접두사가 안 보인다면,
D:\myDjango> myvenv\Scripts\activate를 먼저 실행하여서 가상환경을 작동합니다.

그리고 시험삼아
python -m django --version 을 입력하여 봅시다.
장고가 잘 설치되었다면 장고의 버젼이 표시될 겁니다.


프로젝트 생성하기

처음 장고를 실핼해본다면 초기 세팅을 좀 해야 합니다. 다시 말해 장고 프로젝트를 구성하는 코드를 자동생성 시켜야 한다는 거죠.

역시 커맨드라인에서,
django-admin startproject mysite .
를 입력합니다. ( . 을 빼면 현재폴더에서 하나의 폴더를 더 만들어 하위 폴더에 프로젝트를 생성하고, . 까지 쓰면 현재 폴더에 프로젝트를 생성하게 됩니다-마침표가 아닙니다.)
mysite는 내가 만들 사이트의 이름인데 혼동되기 쉬운 django나 test와 같은 이름을 사용해서는 안 됩니다.

이렇게 해서 만들어진 초기 프로젝트를 살펴보면,
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py
의 구조를 따르고 있습니다.

차례차례 살펴봅시다.

manage.py: 장고 프로젝트와 여러 방법으로 상호작용하도록 해 주는 comman-line utility
mysite\: 실제 프로젝트의 패키지를 가지고 있는 폴더명입니다.
mysite\__init__.py: 파이썬 패키지가 시작되는 곳이라는 걸 알려주는 빈 파일
mysite\settings.py: 웹사이트 설정이 들어 있습니다.
mysite\urls.py: url 정의가 들어 있습니다.
mysite\wsgi.py: 내 프로젝트가 올라갈 WSGI 서버의 진입점입니다.

설정 변경

위의 파일 중, settings.py를 열어 일부 수정해 봅시다.

처음으로 템플릿 관련 설정을 합니다.
아직은 필요치 않지만 추후 프로젝트 템플릿 추가할 때를 위해 다음과 같이 지정합니다.
TEMPLATES = [
    {
        'BACKEND''django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')], #수정
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
cs



그리고, 하단부에 있는
TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Seoul'로 바꾸어 세계표준시각으로 설정되어 있는 시간을 한국 시간으로 바꿉니다.

그리고, 최하단에 있는
STATIC_URL = '/static/'
코드 아래에
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
을 추가하여 정적 파일 경로를 추가합니다.(이유는 아직 모르지만 일단 따라가 보겠습니다.)

추가로, 추후 미디어 관련 파일 작업 할 때를 대비해 다음을 추가해 줍니다.
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')



데이터베이스 설정

이미 기본으로 sqlite3가 설정되어 있습니다.
역시 콘솔창에서 manage.py가 있는 디렉토리로 이동한 후,
python manage.py migrate를 실행하면
migration이 주루룩 적용됩니다.

* 아직 데이터베이스 테이블을 만들지는 않았지만, 장고는 모든 웹 프로젝트 개발 시 사용자의 권한 그룹 테이블이 반드시 필요하다는 가정 하에 설계되었으므로 migrate 명령을 하게 되면 사용자 권한 그룹 테이블이 만들어집니다. 폴더를 확인해 보면 db.sqlite3 파일이 생성된 것을 알 수 있습니다.

그런 다음,
python manage.py runserver를 입력하면 서버가 실행되고, 주소를 알려줍니다.
http://127.0.0.1:8000/
이 주소를 복사하여 브라우져에 붙여보면
무사히 서버가 작동합니다.
콘솔에서 CTRL + C 를 누르면 서버 작동이 완료됩니다.

여기까지 1편을 마칩니다.

댓글 없음:

댓글 쓰기