2012-12-20

'쉽고 빠른 웹개발 Django' 버전 1.4 이상에서 진도나가기



'쉽고 빠른 웹개발 Django'은 1.0버전 기준이어서 최신버전 (1.4.3)에서 막히면 진도를 더이상 나갈 수 없게 됩니다. 이에, 최신 버전에서도 진행할 수 있도록 변경된 부분을 반영하여 수정본을 작성해보았습니다. 1.4 이후 부터 디렉토리 구조가 조금 변경이 되었는데, 대부분 이 것 때문에 기존버전과 맞지 않는 부분이 생기는 것입니다. 추후 더 변경할 것이 발견되면 추가하도록 하겠습니다.

P. 15

Before
django_bookmarks/
    __init__.py
    manage.py
    settings.py
    urls.py
After
django_bookmarks/
    manage.py
    django_bookmarks/
        __init__.py
        settings.py
        urls.py
        wsgi.py

P. 17

Before
DATABASE_ENGINE = 'sqlite3'
DATABASE_NAME = 'bookmarksdb'
DATABASE_USER = ''
DATABASE_PASSWORD = ''
DATABASE_HOST = ''
DATABASE_PORT = ''
After
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'bookmarksdb',                  # Or path to database file if using sqlite3.
        'USER': '',                      # Not used with sqlite3.
        'PASSWORD': '',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}

P.30

Before
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django_bookmarks.bookmarks',
)
After
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'bookmarks',
)

P. 37

Before
import os.path
 
TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__), 'templates'),
)
After
import os
SETTINGS_DIR = os.path.abspath(os.path.dirname(__file__))
(SITE_ROOT, dummy) = os.path.split(SETTINGS_DIR)
 
TEMPLATE_DIRS = (
    os.path.join(SITE_ROOT, 'templates'),
)

P. 48

Before
...
<form method="post" action=".">
...
After
...
<form method="post" action=".">{% csrf_token %}
...

P. 55

Before
import os.path
 
site_media = os.path.join(
    os.path.dirname(__file__), 'site_media'
)
After
import os
 
URLS_DIR = os.path.abspath(os.path.dirname(__file__))
(SITE_ROOT, dummy) = os.path.split(URLS_DIR)
site_media = os.path.join(SITE_ROOT, 'site_media')

P. 58

Before
from django import newforms as forms
After
# -*- coding: utf-8 -*-
from django import forms

댓글 5개:

  1. 60쪽에 print form['username']도 1.4.3에서는 출력이 안되네요...

    아 그리고 58쪽이요

    before에 from django import newforms as forms이렇게 써주셨는데

    제가 보고있는 pdf에는 from django import forms로 되어있는데... 혹시 책으로 보고계신가요...?

    답글삭제
    답글
    1. 방금 다시 한번 테스트해보니, print form['username'] 으로 정상적으로 출력이 잘 됩니다.
      제 책의 58쪽에는 from django import newforms as forms 라고 되어 있습니다.
      참고로 제가 가지고 있는 책은 2009년 4월 10일 초판 1쇄 발행본입니다. 이후에 수정되어 다시 인쇄되었을 가능성도 있겠네요...

      삭제
  2. 8.1 관리자 화면 추가할때

    urls.py 에서도 다른 구문을 사용해야합니다.

    현제 제가 보고있는 pdf에는

    urlpatterns += patterns('',
    # 관리자 페이지
    (r'âdmin/(.*)', admin.site.root),
    )

    위 문법은 1.0꺼라고 하네요...

    현재는

    urlpatterns += patterns('',
    # 관리자 페이지
    (r'^admin/', include(admin.site.urls)),
    )

    위와 같이 해줘야 한다고 합니다. 반영 부탁드립니다. ^^

    답글삭제
  3. 9.1.1 '최근 등록된 북마크' 피드 만들기 부분에도 다른점이 있네요...

    169쪽 feeds.py에서

    from django.contrib.syndication.feeds import Feed

    이게 아니라

    from django.contrib.syndication.views import Feed

    해줘야 한다고 하네요...

    참고: https://github.com/kgrodzicki/django-news-system/issues/1

    반영 부탁드립니다.

    감사합니다.

    답글삭제
  4. 책 보고 하다가 안 되서 정말 힘들었는데... 감사드립니다 ^^
    혹시 위의 사항 말고 더 추가된 것이 있는지요?
    Django에 대해선 이 책 말곤 참고할 도서도 마땅히 안 보이고 힘드네요 ㅜ

    답글삭제