今回はやらないけど、最終的にはGoogle App Engineで何か動かしたい。
PythonフレームワークDjangoをインストール
Pythonのバージョンが2.4の場合は多分これでいい。
CentOSの場合、Yumのせいで2.4がデフォルトになってるはず。
yum -y install python-setuptools easy_install django
今回入れたいのは2.6。
cd /tmp wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg#md5=bfa92100bd772d5a213eedd356d64086 sh setuptools-0.6c11-py2.6.egg easy_install django easy_install mysql-python easy_install pysqlite
Python Package Index : setuptools 0.6c11
http://pypi.python.org/pypi/setuptools
キャッシュディレクトリ設定
デフォルトは /var/www/.python-eggs になってた。
mkdir /var/www/.python-eggs chown apache:apache /var/www/.python-eggs
変更する場合は.htaccessで設定する
SetEnv PYTHON_EGG_CACHE /tmp
Yumだけ2.4にする
もうYumのせいで2.4がデフォルトになってるのがうざったいから、/usr/bin/pythonを2.6へのリンクにして、/usr/bin/yumの1行目で直接2.4を指定した。
[root@eth0 ~]# ll /usr/bin/python* lrwxrwxrwx 1 root root 22 1月 9 05:14 /usr/bin/python -> /usr/local/bin/python2 lrwxrwxrwx 1 root root 6 4月 2 2009 /usr/bin/python2 -> python -rwxr-xr-x 1 root root 5632 1月 21 2009 /usr/bin/python2.4 [root@eth0 ~]# ll /usr/local/bin/python* lrwxrwxrwx 1 root root 7 12月 17 15:09 /usr/local/bin/python -> python2 lrwxrwxrwx 1 root root 16 1月 23 2009 /usr/local/bin/python-config -> python2.6-config lrwxrwxrwx 1 root root 9 1月 23 2009 /usr/local/bin/python2 -> python2.6 -rwxr-xr-x 1 root root 4241855 1月 23 2009 /usr/local/bin/python2.6 -rwxr-xr-x 1 root root 1424 1月 23 2009 /usr/local/bin/python2.6-config lrwxrwxrwx 1 root root 9 1月 23 2009 /usr/local/bin/python3 -> python3.0 -rwxr-xr-x 1 root root 3986822 1月 23 2009 /usr/local/bin/python3.0 -rwxr-xr-x 1 root root 1401 1月 23 2009 /usr/local/bin/python3.0-config [root@eth0 ~]# cat /usr/bin/yum | head -1 #!/usr/bin/python2.4
Djangoプロジェクト作成
django-admin.py startproject [proj]
settings.py編集。
今回はSQLiteを使う。
import os DATABASE_ENGINE = 'sqlite3' DATABASE_NAME = os.path.dirname(__file__) + os.sep + 'django.sqlite' TIME_ZONE = 'Asia/Tokyo' LANGUAGE_CODE = 'ja'
DB初期化
cd [proj] python manage.py syncdb
.htaccess
SetHandler python-program PythonHandler django.core.handlers.modpython PythonPath "['/path/to/parent/directory']+sys.path" SetEnv DJANGO_SETTINGS_MODULE [proj].settings PythonDebug On
アプリケーション作成
python manage.py startapp [app]
settings.py編集。
INSTALLED_APPSに作ったアプリケーションを追加。
'[proj].[app]',
モデル作成
vi [app]/models.py
DB同期
python manage.py syncdb
テンプレート作成
テンプレートファイル作成
{{と}}の中に変数名を入れるとその変数が展開される。
vi templates/[tmp].html
URLディスパッチャの定義
urls.pyのurlpatternsに追加。
(r'^[requesturi]$', '[proj].[app].views.[def]'),
ビュー関数の定義
vi [app]/views.py