産品特色
編輯推薦
本書免費贈送範例網站的源碼和網站文件夾結構及其文件,下載地址:http://pan.baidu.com/s/1pLIuFXp(注意區分數字和英文字母大小寫)
1.詳細的步驟教學,按圖操作,快速上手
2.深入分析Django的MVC/MTV架構
3.多個實用的網站開發範例,即學即用到個人網站
4.從設計、規劃到實踐,16堂課使你輕鬆成為網絡架站高手
內容簡介
Python是目前非常受歡迎的程序設計語言,本書通過對Python語言使用*多的Django Web Framework的介紹,讓讀者可以輕鬆製作齣全功能的動態網站。
本書分4部分,以16堂課來介紹Python新手使用Django架站的要點。*部分(第1~3堂)以一個小型的個人博客網站為主軸,介紹如何快速建立一個實用的Django網站;第二部分(第4~7堂)是Django架構深入剖析,詳細分析Django的MVC/MTV架構;第三部分(第8~11堂)為實用網站開發技巧;第四部分(第12~16堂)為實用網站開發教學,從設計、規劃到實踐,逐步指導讀者在自己的主機環境下構建齣有趣實用的內容。
本書既可作為希望快速上手Python+Django的初學者的參考書籍,也可作為Python培訓學校在Python+Django方麵的培訓教程。
作者簡介
何敏煌,中國颱灣交通大學信息科學所博士。颱灣暢銷書作者.
目錄
第1堂 網站開發環境的建立 1
1.1 網站的基礎知識 1
1.1.1 網站的運行流程 1
1.1.2 Python/Django扮演的角色 2
1.1.3 使用Python/Django建立網站的優勢 3
1.2 建立網站開發流程 3
1.2.1 開發流程簡介 4
1.2.2 在Windows中建立Linux虛擬機 5
1.2.3 在Mac OS中安裝Linux虛擬機 11
1.2.4 在Linux虛擬機中創建Python Django開發環境 17
1.2.5 設置SSH、PuTTY以及FTP服務器 18
1.2.6 安裝Notepad++程序編輯器 22
1.3 活用版本控製係統 26
1.3.1 版本控製係統Git簡介 26
1.3.2 申請Bitbucket賬號 26
1.3.3 在虛擬機中連接Bitbucket 29
1.3.4 在不同的計算機之間開發同一個網站 31
1.4 其他網站項目開發環境的安裝建議 32
1.4.1 在Windows 10中創建開發環境 32
1.4.2 在Mac OS中創建開發環境 35
1.4.3 在Cloud9中創建開發環境 37
1.4.4 在DigitalOcean VPS中創建開發環境 39
1.5 習題 40
第2堂 Django網站快速入門 41
2.1 個人博客網站規劃 41
2.1.1 博客網站的需求與規劃 41
2.1.2 産生*個網站框架 41
2.1.3 Django文件夾與文件解析 44
2.2 創建博客數據錶 46
2.2.1 數據庫與Django的關係 46
2.2.2 定義數據模型 47
2.2.3 啓動admin管理界麵 48
2.2.4 讀取數據庫中的內容 52
2.3 網址對應與頁麵輸齣 55
2.3.1 創建網頁輸齣模闆template 55
2.3.2 網址對應urls.py 60
2.3.3 共享模闆的使用 62
2.4 高級網站功能的運用 65
2.4.1 JavaScript以及CSS文件的引用 65
2.4.2 圖像文件的應用 69
2.4.3 在主網頁顯示文章摘要 71
2.4.4 博客文章的HTML內容處理 73
2.4.5 Markdown語句解析與應用 75
2.5 習題 77
第3堂 讓網站上綫 78
3.1 在DigitalOcean上部署 78
3.1.1 申請賬號與創建虛擬主機 78
3.1.2 安裝Apache網頁服務器及Django執行環境 82
3.1.3 修改settings.py、000-default.conf等相關設置 83
3.1.4 創建域名以及多平颱設置 86
3.2 在Heroku上部署 89
3.2.1 Heroku賬號申請與環境設置 89
3.2.2 修改網站的相關設置 91
3.2.3 上傳網站到Heroku主機 92
3.2.4 Heroku主機的操作 96
3.3 在Google Cloud Platform上部署 97
3.3.1 Google Cloud Platform的介紹 98
3.3.2 Google Computing的啓用與設置 101
3.3.3 Google App Engine的說明與設置 104
3.4 習題 111
第4堂 深入瞭解Django的MVC架構 112
4.1 Django的MVC架構簡介 112
4.1.1 MVC架構簡介 112
4.1.2 Django的MTV架構 113
4.1.3 Django網站的構成以及配閤 114
4.1.4 在Django MTV架構下的網站開發步驟 115
4.2 Model簡介 116
4.2.1 在models.py中創建數據錶 116
4.2.2 在admin.py中創建數據錶管理界麵 119
4.2.3 在Python Shell中操作數據錶 123
4.2.4 數據的查詢與編輯 125
4.3 View簡介 127
4.3.1 建立簡易的HttpResponse網頁 127
4.3.2 在views.py中顯示查詢數據列錶 129
4.3.3 網址欄參數處理的方式 131
4.4 Template簡介 133
4.4.1 創建template文件夾與文件 133
4.4.2 傳送變量到template文件中 134
4.4.3 在template中處理列錶變量 137
4.5 *終版本摘要 138
4.6 習題 142
第5堂 網址的對應與委派 143
5.1 Django網址架構 143
5.1.1 URLconf簡介 143
5.1.2 urlpatterns的Regular Expression語法說明 145
5.1.3 驗證RE設計URL的正確性 148
5.2 高級設置技巧 149
5.2.1 參數的傳送 149
5.2.2 include其他整組的urlpatterns設置 150
5.2.3 URLconf的反解功能 151
5.3 習題 152
第6堂 Template深入探討 153
6.1 Template的設置與運行 153
6.1.1 settings.py設置 153
6.1.2 創建templates文件 155
6.1.3 在templates文件中使用現有的網頁框架 156
6.1.4 直播電視網站應用範例 157
6.1.5 在template中使用static文件 161
6.2 高級Template技巧 163
6.2.1 Template模闆的繼承 163
6.2.2 共享模闆的使用範例 165
6.3 Template語言 166
6.3.1 判斷指令 167
6.3.2 循環指令 168
6.3.3 過濾器與其他語法標記 173
6.4 習題 176
第7堂 Models與數據庫 177
7.1 網站與數據庫 177
7.1.1 數據庫簡介 177
7.1.2 規劃網站需要的數據庫 178
7.1.3 數據錶內容設計 181
7.1.4 models.py設計 182
7.2 活用Model製作網站 183
7.2.1 建立網站 183
7.2.2 製作網站模闆 186
7.2.3 製作多數據錶整閤查詢網頁 188
7.2.4 調整admin管理網頁的外觀 192
7.3 在Django中使用MySQL數據庫係統 194
7.3.1 安裝開發環境中的MySQL連接環境(Ubuntu) 194
7.3.2 安裝開發環境中的MySQL連接環境(Windows) 195
7.3.3 使用Google雲端主機的商用SQL服務器 199
7.4 習題 203
第8堂 網站窗體的應用 204
前言/序言
本書的主要目的在於介紹如何使用Django這個Web Framework在網絡主機上架設一個全功能的網站。Django是一個由Python編寫的具有完整架站能力的Web網站框架,通過這個框架,隻要短短幾個指令,Python的程序設計人員就可以輕鬆地建立一個正式網站所需要的骨架(框架),再從這個框架中開發齣全功能的網站。
Python語言充滿瞭令人津津樂道的加速技巧,為瞭方便讀者學習,本書盡量使用初學者容易理解的講述方式,以期閱讀本書的讀者能夠在*短的時間內跨過使用程序設計語言製作網站的門檻,馬上以Python建立自己的特色網站,並在熟悉流程以及架構後,進一步提升網站的性能。
所以,隻要您有Python的基本程序設計能力以及網站架構和運行的基本概念,基本上就有足夠的能力通過本書來建立屬於自己的動態網站——一個可以讓您充分利用Python語言所有能力、連接數據庫、使用社交網站賬號驗證機製、實時運算處理數據、充分實現所有“點子”的網站。
本書所有網站範例均在Python 2.7.6以及Django 1.8.13中測試無誤,為瞭避免學習上的睏擾,建議讀者在學習時盡量以同樣的版本練習(相同的主版本號即可),等熟練之後再視需求升級版本。此外,一開始建立基本範例時也以自行輸入程序代碼為主,等到有瞭一定的基礎,再把自己的程序代碼拿來重復使用,“在實踐中學習”永遠是程序設計學習的*佳方法。
揭秘你的第一個網站:從零到一的Django建站之旅 你是否曾夢想過將腦海中的創意轉化為在綫的實體?是否渴望擁有一個屬於自己的網站,展示作品、分享知識,甚至建立一個社區?互聯網的門檻,其實比你想象的要低。特彆是當你手中掌握瞭強大的工具——Django——時,這一切將變得觸手可及。 這本教程,正是為你精心打造的通往Django建站世界的“第一課”。它並非高深的理論堆砌,而是循序漸進的實戰指導,讓你在不動聲色間,掌握從零開始搭建一個功能完善的網站所需的一切核心技能。我們將一起探索Django這個風靡全球的Python Web框架的奧秘,解鎖其高效、安全、可擴展的強大能力,讓你信心滿滿地邁齣成為Web開發者堅實的第一步。 為什麼選擇Django? 在浩瀚的Web開發技術海洋中,Django之所以脫穎而齣,成為無數開發者青睞的利器,並非偶然。它遵循“快速開發”和“乾活不重復”(Don't Repeat Yourself, DRY)的設計哲學,提供瞭一整套成熟的解決方案,讓你能夠專注於業務邏輯的實現,而非底層細節的繁瑣。 “開箱即用”的強大功能: Django內置瞭用戶認證係統、管理後颱、ORM(對象關係映射)等幾乎所有構建現代Web應用所需的核心組件。這意味著你不需要從零開始編寫大量的通用代碼,可以直接利用Django提供的現成功能,極大地提升瞭開發效率。 安全性: Django非常重視安全性,內置瞭對SQL注入、跨站腳本(XSS)攻擊、跨站請求僞造(CSRF)等常見Web安全威脅的防禦機製,讓你能夠構建更健壯、更安全的網站。 可擴展性: 無論你的項目規模如何,Django都能夠提供良好的支持。它良好的設計使得你可以輕鬆地添加新的功能、集成第三方庫,並隨著用戶量的增長而擴展應用。 活躍的社區和豐富的資源: Django擁有一個龐大而活躍的全球社區,這意味著當你遇到問題時,總能找到豐富的文檔、教程和熱心的開發者幫助你解決。 本書將帶你走進一個怎樣的建站旅程? 本書將以一個循序漸進、實戰驅動的方式,帶你領略Django的魅力。我們將從最基礎的概念講起,一步步構建起一個完整的Web應用。每一章節都圍繞一個核心主題展開,並通過大量的代碼示例和實踐練習,讓你在動手操作中學習和鞏固知識。 第一步:奠定堅實基礎——Python與Web開發入門 在正式踏入Django之前,我們將先迴顧和鞏固一些Python基礎知識,並簡要介紹Web開發的基本概念,例如HTTP協議、客戶端-服務器模型等。這部分內容旨在確保即使你是完全的編程新手,也能輕鬆理解後續Django的核心概念。我們會用通俗易懂的語言解釋這些概念,讓你快速進入狀態。 第二步:初識Django——安裝與項目結構 安裝Django是第一步,我們將詳細指導你如何在你的操作係統上完成Django的安裝。接著,我們將學習如何創建一個新的Django項目,並深入瞭解Django項目的基本目錄結構和各個文件的作用。理解項目結構,就像瞭解一個新傢的布局,能讓你在後續的開發中事半功倍。 第三步:MVC/MTV模式的秘密——Django的核心架構 Django采用的是MTV(Model-Template-View)設計模式,這實際上是MVC(Model-View-Controller)模式的一種變體。我們將詳細解釋MTV模式的各個組成部分及其如何協同工作。 模型(Model): 負責處理數據庫交互。我們將學習如何定義數據模型,將現實世界的數據映射到數據庫的錶格中,以及如何使用Django的ORM進行數據的增刪改查。 模闆(Template): 負責展示數據。我們將學習如何創建HTML模闆,如何將數據從視圖傳遞到模闆進行渲染,以及如何使用Django的模闆語言實現動態內容。 視圖(View): 負責處理請求和響應。我們將學習如何編寫視圖函數,接收用戶的HTTP請求,處理業務邏輯,並返迴相應的HTTP響應。 第四步:玩轉數據庫——模型、遷移與ORM 數據庫是任何Web應用的心髒。本書將深入講解Django的ORM(Object-Relational Mapper),這是一個強大的工具,允許你用Python代碼來操作數據庫,而無需直接編寫SQL語句。 定義模型: 我們將學習如何使用Django的模型API定義你的數據結構,包括字段類型、約束、關係等。 數據庫遷移: 當你修改模型時,Django的遷移係統可以幫助你自動生成和應用數據庫的變更。我們將學習如何創建和應用遷移,確保你的數據庫結構與模型保持同步。 CRUD操作: 掌握對數據庫進行創建(Create)、讀取(Read)、更新(Update)和刪除(Delete)操作是Web開發的基礎。我們將通過豐富的示例,演示如何使用Django ORM高效地完成這些操作。 第五步:構建用戶界麵——視圖、URL與模闆 用戶與你的網站進行交互,是通過URL、視圖和模闆的組閤來實現的。 URL配置: 我們將學習如何定義URL路由,將用戶訪問的URL映射到相應的視圖函數。 視圖函數: 視圖函數是處理用戶請求的核心。我們將學習如何編寫視圖函數來處理GET和POST請求,從數據庫獲取數據,並將數據傳遞給模闆。 HTML模闆: 模闆是用戶看到的內容。我們將學習如何使用HTML、CSS以及Django的模闆標簽和過濾器來創建動態的、美觀的網頁。 第六步:處理用戶輸入——錶單處理 用戶需要通過錶單來提交信息,例如注冊、登錄、發錶評論等。Django提供瞭強大的錶單處理功能。 Django錶單類: 我們將學習如何定義Django錶單類,它不僅可以驗證用戶輸入的數據,還可以生成HTML錶單元素。 錶單驗證: 確保用戶提交的數據是有效和安全的至關重要。我們將學習如何利用Django錶單的內置驗證器,以及如何自定義驗證規則。 處理錶單提交: 我們將學習如何在視圖中接收和處理用戶提交的錶單數據,並將其保存到數據庫或進行其他邏輯處理。 第七步:用戶認證與權限管理 一個完整的網站通常需要用戶係統,允許用戶注冊、登錄、管理自己的賬戶,並根據用戶的身份分配不同的訪問權限。Django內置瞭完善的用戶認證係統。 注冊與登錄: 我們將學習如何實現用戶注冊和登錄功能,並安全地處理用戶密碼。 用戶注銷: 實現用戶登齣功能。 權限控製: 我們將學習如何限製某些頁麵或功能的訪問,隻允許特定用戶或用戶組訪問。 第八步:Django管理後颱——開發者的得力助手 Django的自帶管理後颱是其最受歡迎的功能之一。它能夠自動生成一個功能強大的後颱管理界麵,讓你可以方便地管理你的網站數據。 注冊模型到後颱: 我們將學習如何將你的模型注冊到Django管理後颱,使其可以被管理。 使用管理後颱: 探索管理後颱的各種功能,包括數據列錶、詳細信息、添加、編輯和刪除等。 定製管理後颱: 我們還將瞭解如何自定義管理後颱的顯示,使其更加符閤你的需求。 第九步:靜態文件與媒體文件處理 網站不僅僅是動態內容,還需要圖片、CSS、JavaScript等靜態文件,以及用戶上傳的媒體文件。 靜態文件: 我們將學習如何配置Django來處理CSS、JavaScript和圖片等靜態文件,並瞭解在開發和生産環境中處理靜態文件的最佳實踐。 媒體文件: 我們將學習如何配置Django來處理用戶上傳的文件,例如用戶頭像、文檔等。 第十步:部署你的網站——讓世界看到你的作品 學習瞭如何構建一個功能完善的網站,下一步就是如何將它部署到互聯網上,讓所有人都能訪問。 Web服務器與WSGI: 我們將簡要介紹Web服務器(如Nginx、Apache)和WSGI(Web Server Gateway Interface)在Django部署中的作用。 簡單的部署實踐: 我們將介紹一些部署Django網站的常用方法和工具,讓你能夠輕鬆地將你的網站上綫。 不僅僅是代碼,更是思維的轉變 本書的目標不僅僅是讓你學會寫Django代碼,更重要的是讓你理解Web開發的思維方式。我們將引導你思考如何設計一個清晰、可維護、安全且可擴展的Web應用。通過大量的實踐,你將逐漸培養齣解決問題的能力,並建立起對Web開發的熱情。 適閤人群: 對Web開發充滿好奇,但不知從何開始的編程新手。 已經掌握Python基礎,希望將其應用於Web開發的學習者。 想要快速搭建原型,驗證想法的開發者。 對構建自己的在綫作品集、博客、小型社區網站感興趣的個人。 準備好瞭嗎? 翻開本書,我們將一起踏上這段激動人心的Django建站之旅。每一個代碼片段,每一個實踐步驟,都將是你邁嚮Web開發者之路的堅實階梯。讓我們一起,用代碼點亮你的第一個網站!