Django導入まとめ

Information

ver date memo
1.0 2013/06/01 first

環境

Ubuntu 12.04 LXDE
python 2.7

Djangoとは

詳しくは、下記リンクを参照
Django - Wikipedia
Django入門 - memomemo

メモ

  1. Python Webアプリケーションフレームワーク
  2. (DB)CRUDインターフェースを提供
  3. MTV(Model Template View)フレームワーク*1

インストール

virtualenv, virtualenvwrapper*2

# virtualenv, virtualenvwrapperがない場合は入れておく
sudo apt-get install python-virtualenv
sudo apt-get install virtualenvwrapper
# 開発環境の作成
mkvirtualenv django-sample
# 開発環境にログイン
workon django-sample
# Djangoインストール
pip install django



サンプル

サンプルとして、ここのDjango入門 - memomemo記事のモノを作る。
実際に作るにあたってフォルダ構成等が分りづらかったので、そこら辺の補足を行う。

サーバ起動
# アドレスも指定可能(ポート番号は指定の必要有)
python manage.py 0.0.0.0:8000


setting.pyの編集

シェバングとimport文追加

#!/usr/bin/env python    
import os    


Application作成

INCLUDE_APPSに追加となっているが、INSTALLED_APPSの間違い。
設定するパスが"ecsite.itempage"の場合、下記のようなフォルダ構成にする必要がある。

ecsite
|- ecsite
|   +- itempage
|      
+- manage.py



モデルの操作

上記の様にecsiteの下にitempageを入れているので下記に修正する。
(尚、インタプリタ上の実行である。)

from scsite.itempage.models import Item



テンプレートの作成 (setting.py)

setting.py内のTEMPLATE_LOADERSにフォルダを追加しろと書いてあるが、TEMPLATE_DIRSの間違い。
私は、ecsiteの直下で良かったので、「ecsite/templates」にした。

View Method
# page/item.htmlとするためには、テンプレートフォルダ
# の直下にpageフォルダを作成する必要有
t = loader.get_template('page/item.html')



最終的なフォルダ構成

一部省略

ecsite
|- ecsite
|   +- itempage
|   +- templates
|       +- page	    
|           +- item.html	    
|      
+- manage.py


*1:MVCとの対比 : Model=Model, View=Template, Controller=View
http://www.djangoproject.jp/doc/ja/1.0/faq/general.html#django-mvc-controller-view-view-template

*2:開発用のバーチャル環境を作るツール。Djangoに限らず、Pythonで開発を行う際に大量のpythonのモジュールをインストールすることになると思う。pip,easy_install等でインストールする事になると思うが、複数のプログラムを開発していると、開発対象で何のモジュールを使っているのかがわからなくなる。開発対象毎にモジュールをしっかりと管理したい場合に用いる。