Python 架站特訓班 -- Django 最強實戰
內容描述
Python應用新經典!
繼暢銷書《Python初學特訓班》之後的
架站主題實戰代表作!
最佳熱門組合Python X Django,
讓你初學架站就上手!
Python是目前最受歡迎的程式語言,Django堪稱是當前最熱門的Python網站框架,兩者結合,讓開發複雜的資料庫網站變得更簡單。本書一次綜合架站必備技能,提供相關範例檔,讓Python發揮極大效用,用Django打造出超強互動網站。
想要架站,
唯有真正實戰,才是最佳體驗!
■零基礎建置Django開發環境,避開所有初學障礙。
■正規化網站開發流程,由Django專案建立與app開發為主軸,領略其中奧義。
■新一代開發模式,使用視圖與模版學習Django運作方式,了解框架應用原理。
■結合資料庫進行網站開發,運用Django資料庫結構與模式,提供詳細建置流程、操作方式與管理介面的方法。
■以Django實作資料庫互動的操作精華「查詢、新增、修改與刪除」,讓資料庫應用不再是開發網站者的痛處。
■運用Cookie與Session記錄瀏覽者與相關資訊,讓不同使用者能在同一網站中儲存並取得不同資料,使用不同服務。
■深入Django使用者管理,簡單而全面的使用者認證,輕鬆完成網站登入/登出工作,帶入會員機制。
■規劃5個主題實戰範例:包含新聞公告、網路留言版、網路相簿、電子商務購物車,以及結合網路地圖的美食網頁,架構出專業實用的網站。
■將網站部署到免費的知名雲端平台「Heroku」,展示自行架設的網站與後續管理都免煩惱。
目錄大綱
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有提供免費方案,最適合一般使用者利用。
作者介紹
一個致力於資訊圖書創作二十餘載的工作團隊,擅長用輕鬆詼諧的筆觸,深入淺出介紹難懂的 IT 技術,並以範例帶領讀者學習電腦應用的大小事。
我們不賣弄深奧的專有名辭,奮力堅持吸收新知的態度,誠懇地與讀者分享在學習路上的點點滴滴,讓軟體成為每個人改善生活應用、提昇工作效率的工具。
舉凡程式開發、文書處理、美工動畫、攝影修片、網頁製作,都是我們專注的重點,而不同領域有各自專業的作者組成,以進行書籍的規劃與編寫。一直以來,感謝許多讀者與學校老師的支持,選定為自修用書或授課教材。衷心期待能盡我們的心力,幫助每一位讀者燃燒心中的小宇宙,用學習的成果在自己的領域裡發光發熱!
我們期待自己能在每一本創作中注入快快樂樂的心情來分享, 也期待讀者能在這樣的氛圍下快快樂樂的學習。
官方網站:www.e-happy.com.tw
FB粉絲團:www.facebook.com/ehappytw