2011年10月31日 星期一

Python+Django 輕鬆寫Web AP


近期工作需要在較短時間內,開發出Web端的程式,因筆者擅長Python,最後決定使用python+django 的組合。
另外在FreeNas 8 中也是使用 python+django來實作Web 控制介面,所以學會django,也可日後若為FreeNas添加新功能做準備。

(註:Google App Engine也採用django,但內建的版本已封裝一層,但有網上教學如何使用原來的django套件方法。)

環境設定

本次採用python 2.7+django 1.3.1
django 授權BSD License(筆者愛用BSD授權)

Cygwin
  • 下載python-2.7.2 重新編繹
  • 開啟Cygwin Terminal 或Mintty for Cygwin
  • 安裝pip
    • easy_install pip
  • 使用pip來管理python套件
    • pip install django

Mac OS X Lion
  • 內建python 2.7.1
  • 開啟Terminal
  • 安裝pip
    • sudo easy_install pip
  • 使用pip來管理python套件
    • sudo pip install django

如何建立專案?

此部分主要參考django文件(原文),加入筆者心得
Django首次使用產生主網站(如:mystie)

django-admin.py startproject mysite

註:在Mac OS X使用django-admin.py startproject 如出permission denied, 請將修改權限

chmod +x django-admin.py

mysite 目錄結構
manage.pydjango命令列工具
settings.pydjango專案設定腳本
urls.py用來設定urls 對應網頁進入點(可參原文說明
__init__.py空的內容則用來告訴python這是一個module,並可用來指定mysite模組初始化動作


啟動mystie專案

若只要本機內可供取用,請執行下行命令(server 會啟動在127.0.0.1:8000)
python manage.py runserver

參數語法
python manage.py runserver [:]

若欲使外部可連接請指定IP為0.0.0.0,表所有外部電腦均可使用此server系統IP連接。
python manage.py runserver 0.0.0.0:8080

註:不可單獨指定IP而沒有指定port
$ python manage.py runserver 0.0.0.0
Error: "0.0.0.0" is not a valid port number or address:port pair.


執行結果
~ mysite$ python manage.py runserver 0.0.0.0:8080
Validating models...

0 errors found
Django version 1.3.1, using settings 'mysite.settings'
Development server is running at http://0.0.0.0:8080/
Quit the server with CONTROL-C.


使用瀏覽器連接到localhost:8080










結論

與之前試過nodejs+express,有異曲同工之妙;只在使用的語言不同。
若網友想寫類似Web應用程式,可選擇慣用,產能倍增。
除此之外,便是主機代管服務的選擇,也將會影響你的可用的組合。
因筆者較熟悉python,用django較為得心應手,而nodejs 到處使用callback的方式不太習慣。
最近django網站首頁所列一句話:
"Django makes it easier to build better Web apps more quickly and with less code."
也是筆者採用的主因之一。
本篇旨在記錄一下,學習心得,歡迎交流。


2 則留言:

KP 提到...

版大~~您好~~你手邊或是曾經有試過ARM Android 上安裝Python/Django 嗎?

超軟之家 提到...

沒有吔!ARM CPU只有測試過Debian ARM 上。