djangoを使ってみる

pythonのwebフレームワークであるdjango(ジャンゴ)を使ってみる。
開発環境は、ubuntu 10.04でpython-django (1.1.1-2ubuntu1.4)インストールから動作まで試してみた。

django(wikipedia)
http://ja.wikipedia.org/wiki/Django

インストールから動作まで参考にしたのは下記サイト
PythonDjangoをapt-getでUbuntuにインストール
http://blog.srengine.com/2008/03/python-djangoapt-getubuntu.html

インストール

djangoのインストール

$ sudo apt-get install python-django

apache2でpythonを有効にするモジュール(mod_python)のインストール

$ sudo apt-get install libapache2-mod-python libapache2-mod-python-doc

apache2の設定(python動作確認用)

/etc/apache2/sites-available/default に以下(fromからtoまでの部分)を追記する。

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
#               AllowOverride None
                AllowOverride All
                Order allow,deny
                allow from all

                # for django 2012/05/03 Do. ---from ★ 
                AddHandler mod_python .py
                PythonHandler mod_python.publisher
                PythonDebug On
                # ---to ☆

        </Directory>

テストファイルを配置(python動作確認用)

以下のようなテストファイルtest.pyを/var/www以下に置く。

def index(req):
    return "Test successful"

apacheの再起動

$ sudo service apache2 restart

ブラウザで確認

http://localhost/test.pyにアクセスする。
"Test successful"が見えていればまずはOK。

apache2の設定(django動作確認)

djangoのプロジェクトディレクトリを作成する。

$ cd /var/www/
$ sudo django-admin startproject myprj
$ ls myprj/

apacheに設定してプロジェクトディレクトリを利用できるようにする。
/etc/apache2/sites-available/default に以下を追記(fromからtoまでの部分)

# for django 2012/05/03 Do. ---from
        <Location "/myprj/">
         Options Indexes FollowSymLinks MultiViews
         AllowOverride None
         Order allow,deny
         allow from all
         SetHandler python-program
         PythonPath "['/var/www'] + sys.path"
         PythonHandler django.core.handlers.modpython
         SetEnv DJANGO_SETTINGS_MODULE myprj.settings
         PythonDebug On
        </Location>
#--- to
</VirtualHost>

設定を有効にするため、apacheのrestartする。

$ sudo service apache2 restart

http://localhost/myprjにアクセスする。
「It worked!Congratulations on your first Django-powered page.」とかが見えるはず。

以降も、ほぼ「【PythonDjangoをapt-getでUbuntuにインストール(http://blog.srengine.com/2008/03/python-djangoapt-getubuntu.html)」を参考に作業した。

違っていた点/追加で作業が必要であった点だけ記載
db名

/var/www/myprj/settings.py
DATABASE_NAME = 'myprg' -> 'myprj'

myappに移動して、models.pyで、

 username = models.CharField(maxlength=200)  -> max_length
 password = models.CharField(maxlength=200)    -> max_length

python-mysqldbのインストール

$ sudo apt-get install python-mysqldb
mysql> create database myprj ->最後にセミコロン";"がいる

以上で、
/var/www/myprj$ python manage.py syncdb で設定できる。


あとは、modelを利用して具体的なデータをセットし、viewを通して取得し、index.html経由でwebアクセス可能になる。