01 建置Django開發環境
Python程式語言是由吉多范羅蘇姆(Guido van Rossum) 所創建,是一種物件導向、直譯式的電
腦程式語言。根據一些較權威的機構如IEEE、CodeEval統計,Python與C、Java為目前最受歡迎程式語言的前三名。
Python最為人稱道的特性就是可藉由安裝各種套件不斷擴充其功能,當然也不乏網站架構的套件: 如Django、Flask、Pyramid、Bottle等,而Django則是目前功能最齊全、使用人數最多的Python網站框架。
02 建立專案及app
Django套件安裝完成後,即可建立專案,並在專案中建立app、 templates 和static目錄,migration資料檔,並利用migrate將模型與資料庫同步,同時必須以設定使用環境。
Django的程式架構是採用urlpattern網址和函式對照方式,請依循規定步驟進行開發。
03 視圖與模版
Django是以模型Model、視圖View和控制Controller分開的開發架構,在Django中稱之為MTV 架構,和MVC稍有差異。
MTV以Template模版(.html檔)輸入或輸出資料,在檔定義函式,利用該函式,透過Model存取資料庫,同時將資料以Template模版顯示。Template模版有自己的語言,可以顯示變數,同時也有if條件指令、for迴圈指令和Filter過濾器,並加上註解。
04 資料庫及後台管理
在檔中定義class類別,每一個類別相當於一個資料表。
利用admin可以管理後台,新增、修改或刪除資料,在Admin管理介面中可以設定顯示多個欄位資料,也可以依指定欄位過濾資料、搜尋或排序。
05 資料新增、刪除和修改
表單的傳送方式,有get和post兩種。
利用objects.create方法可以新增一筆資料,save方法可以將該筆記錄寫入資料庫。利用表單模型建立物件後,就可以對輸入資料作驗證。delete方法可以刪除指定資料,可以objects物件的get、all或filter方法取得資料,再以delete方法刪除指定的資料。利用save方法可以將資料寫回資料庫,如此就可以修改資料。
06 Cookie與Sessions
Cookie是將狀態資料記錄在用戶端電腦的技術,當瀏覽者開啟網站時,即可在程式的設定下將指定的資料儲存在用戶端電腦中,並可設定該資料的有效時間。
Session是瀏覽者與伺服器連線的工作期間所保持的狀態,它的使用時間是在開啟瀏覽器後進入啟動 Session機制的網站開始,只要Session沒有到期,回到原網站時您會發現原來的Session仍然有效。
07 使用者管理
在django.contrib套件的auth應用程式中, 已內建User(使用者)這個資料表,使用這個內建的資料表就可以記錄使用者個人資訊。
以is_authenticated可以檢查使用者是否認證過。如果是User物件會傳回True,而AnonymousUser物件則傳回False。
auth.login()接收request、user兩個參數,登入成功後會產生一個Session,因為這個Session的存在,使得該使用者可以跨頁面保存auth.logout()可以進行登出動作,登出之後,原來的Session將會被清除。
08 專題:新聞公告系統
幾乎每一個網站都會使用新聞公告系統,可以將網站最新訊息快速告知所有瀏覽者。Django內建完整新增、修改、刪除資料庫管理功能,簡易新聞公告系統使用內建資料庫管理功能,輕鬆建立系統。
使用Django內建資料庫管理功能雖然輕鬆,但每次都要開啟管理者網頁,終究不夠方便。完整新聞公告系統自行建立資料庫管理功能,在新聞網頁中就可新增、修改及刪除新聞資料。
09 專題:網站留言版
網站上的留言版,可以說是站長與網友溝通的橋樑,所以許多網站都希望能夠放置留言版,讓網友可以有一個交流的空間。
本章開發的網站留言版,不僅可供訪客觀看,發表留言,管理者也擁有完整的管理功能,並可對訪客留言做回應。
10 專題:網路相簿
隨著數位相機的流行,拍下生活中的點點滴滴放到網路上與朋友分享,已經是許多現代人的日常習慣。本專題將完成一個實用的網路相簿程式,管理者可以輕易將數位照片上傳到相簿的內容中分享。
11 專題:購物車
想要在網站上自己開店當老闆嗎?那麼購物車就是您網站必須具備的主要功能之一,本專題可以幫助您完成購物流程的規劃、製作及網路開店的夢想!購物車專題是以顧客的購物流程製作為重點。
12 專題:埔里美食地圖
埔里美食地圖專題將在網頁上加入Google地圖,透過資料庫中記錄的美食景點,利用經緯度標示在地圖上。瀏覽者不僅可以在點選景點時看到介紹訊息、街景縮圖,並可以直接進入街景模式來檢視真實的街景圖片,讓美食的資訊結合地圖,使整個專題的功能更加實用。
13 部署網站到Heroku
將網站置於PaaS(Platform as a Service)網路服務平台是目前大多數網站開發者的選擇,PaaS
將網站視為一個應用程式,只要調整網站的結構符合PaaS 的規則,系統就可正常運行。
PaaS的優點是開發者只需專注於網站的功能,其餘主機相關事宜都由PaaS 去操心。目前Google、MicrosoftAzure、Amazon及Heroku都有提供PaaS服務,其中Heroku有提供免費方案,最適合一般使用者利用。