[[PageOutline]]
{{{
#!html
Django
}}}
----
= 【學習動機】 =
 * 提供 light-weight 的 web介面給 drbl-virt 使用
 * 考量到 python 已經是所有 linux 必備套件 (Django 是基於 python 的網頁框架)
----
= 【Django 測試】 =
== [安裝] ==
 * 從 tarball 安裝 
{{{
$ tar xzvf Django-1.2.3.tar.gz
$ cd Django-1.2.3
$ sudo python setup.py install
}}}
== [開發環境] ==
 * 使用 Eclipse 來開發 (但因 Eclipse 是 for java 的,所以必須再安裝新的套件 !PyDev)
 * 打開 Eclipse 新增 "http://pydev.org/nightly" 到您的 Available Softwate Site
 * 搜尋 pydev 並安裝
   * 安裝後到 "偏好設定" 去設定 python 直譯器 和 函式庫 的路徑
 
== [使用] ==
=== 1.1 開啟專案 ===
 * 使用 django-admin.py 開啟專案
{{{
$ django-admin.py startproject {project_name}
}}}
 * 會產生一個目錄,含有 4 個 python script
{{{
$ ls {project_name}
__init__.py  manage.py  settings.py  urls.py
}}}
   * 根據官方文件,此 4 份檔案個有其用途
     1. __init__.py:一個空的檔案,它會告訴 python 這個目錄將使用到哪些 python package
     2. manage.py:一個命令列工具,可以與您的 Django 專案互動
     3. settings.py:Django project 的設定檔
     4. urls.py:Django project 的 url 的 URL 宣告
 * Django 會附帶一個開發用的網頁伺服器 (開發測試用),執行下面指令後會出現提示訊息 (告知您連到 http://127.0.0.1:8000)
   * 此網頁伺服器是測試使用,若您的網頁應用程式要正式上線,建議使用正式的網頁伺服器 (ex. Apache, ...)
   * 使用不同 port -> python manage.py runserver 8001
   * 讓外部 IP 可以連到 -> python manage.py runserver 0.0.0.0:8000
{{{
$ python manage.py runserver
Validating models...
0 errors found
Django version 1.2.3, using settings 'project_1.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
}}}
=== 2.1 開啟 models (模型) ===
 * 若網頁應用需要使用到資料庫,則必須先到 setting.py 設定使用的資料庫資訊 (支援 PostgreSQL, MySQL, SQLite3)
----
= 【如何整合到 drbl-virt】 =
----
= 【參考】 =
 * [http://www.djangoproject.com/ 官網]
 * [http://withdjango.com/readers/resources/ 相關連結]
 * 開發環境
   * [http://blog.vlku.com/index.php/2009/06/10/djangoeclipse-with-code-complete-screencast/ Django+Eclipse with Code Complete Screencast]
   * [http://heather.koyuk.net/refractions/?p=58 Django Development Environment Setup Part 1]
   * [http://heather.koyuk.net/refractions/?p=65 Django Development Environment Setup Part 2]
   * [http://heather.koyuk.net/refractions/?p=69 Django Development Environment Setup Part 3]
   * [http://heather.koyuk.net/refractions/?p=72 Django Development Environment Setup Part 4]
   * [http://peach3.nl/blog/2009/02/my-django-development-environment/ My Django development environment]
 * 中文資料
   * [http://www.openfoundry.org/tw/tech-article/1330 Django 簡介] by !OpenFoundry
   * [http://www.openfoundry.org/tw/tech-article/1350 Django 簡介(實作篇)] by !OpenFoundry
   * [http://tech.seety.org/python/django_tossug_present.html Django, how to start]
   * [http://www.haokanbu.com/story/4925/ Django Hello World]
   * [http://blog.ericsk.org/archives/815 用 Python + django 10分鐘內作出一個 blog]
   * 開發環境
     * [http://www.docin.com/p-56805112.html 利用Eclipse + PyDev開發Django應用程式]
     * [http://hi.baidu.com/yobin/blog/item/3c7a39f3f466e555342acc05.html 安装配置Django开发环境(Eclipse + Pydev)]
     * [http://ddkangfu.blog.51cto.com/311989/63876 使用Eclipse+PyDev+EclipseHtmlEditor搭建Django开发环境 ]
     * [http://geeksun.javaeye.com/blog/494297 django+eclipse的配置]