2012-04-09

Django 1.4 에서 Template 디렉토리 설정

Django 1.4 에서 가장 큰 변화라면, 전체 어플리케이션의 레이아웃이 바뀌었다는 점이다.
이전 버전에서는 프로젝트를 생성하면 아래와 같이 파일들이 생성되었다.

project_name/
            `- __init__.py
            `- manage.py
            `- settings.py
            `- urls.py
            `- wsgi.py
1.4에서는 이렇게 바뀌었다.
project_name/
            `- manage.py
            `- project_name/
                           `- __init__.py
                           `- settings.py
                           `- urls.py
                           `- wsgi.py

여기에서 주의 깊게 볼 것은 상위에 있는 project_name 디렉토리에는 __init__.py 파일이 없기 때문에 패키지명으로 사용할 수 없다는 것과 settings.py 에서 템플릿 디렉토리를 지정할 때 주의해야 한다는 것이다. 템플릿 디렉토리를 절대경로로 하는 경우에는 상관 없지만, 보통(?) settings.py 를 기준으로 상대경로를 지정하는 경우가 많이 있다.
1.4 이전에는 다음과 같이 하면 문제 없었다.

import os.path
TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__), 'templates'),
)

그러나, 1.4 에서는 settings.py 의 위치가 한단계 밑으로 내려갔기 때문에, 좀 더 복잡해지긴 했지만, 아래와 같은 방법으로 설정해주어야 한다.

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'),
)

2012-04-04

node.js : nodebrew 를 이용한 node 설치

여러 버전의 node 를 사용하기 위해서 기존에 nvm 을 이용했으나, 다른 언어(perl, python)에서 사용하던 ~~~brew 를 node 에서도 이용할 수 있게 되었다. 사용법은 조금 다르긴 하지만, nvm 보다 낫지 않을까 싶어서 설치해보고 정리해보았다.

$ curl https://raw.github.com/hokaccha/nodebrew/master/nodebrew | perl - setup
$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.profile; source ~/.profile
$ nodebrew help
$ nodebrew ls-remote
$ nodebrew install 0.6.14
$ nodebrew alias default 0.6.14
$ nodebrew use default
$ node -v
v0.6.14