産品特色
編輯推薦
怎樣使用Django構架實現客戶端的交互和實時特性與網絡應用相融閤?本書通過一係列簡單小巧的應用開發項目,展示瞭熟練的Django開發者將REST API、WebSockets和Backbone.js這樣的客戶端MVC構架加入到新建或已有的項目中的方法。
內容簡介
通過選取用於創建輕量級應用組件的形式來理解進行Django解耦設計的方法。通過本書的學習,你將具備創建單頁麵響應實時交互應用的能力。如果你熟練掌握瞭Python和JavaScript,則可以開始編寫應用程序瞭。
■ 學習開始新建Django項目的輕量級方法。
■ 將可重用應用分解成與其他應用通信的更細小的服務。
■ 創建靜態、便捷的原型站點作為網站和應用的支撐平颱。
■ 使用Django Rest Framework構建REST API。
■ 學習如何使用帶有Backbone.js的MVC框架的Django。
■ 在REST API平颱上創建單頁麵網絡應用。
■ 將WebSockets和Tornado網絡庫與實時特性相融閤。
■ 在項目開發中使用本書的代碼驅動實例。
作者簡介
Julia Elman,一名前端的開發者和技術教育的倡導者,2008年在World Online工作期間就開始瞭Django的學習。她是Girl Develop It RDU和PyLadies RDU組織的共同創辦人,該組織幫助超過850名婦女學習瞭編程知識。
Mark Lavin,是北加利福尼亞達勒姆Caktus谘詢集團的技術主管。他是在華爾街進行衍生品定價工作數年後開始進行Python網絡開發的。他負責對與Django開發相關的幾個開源項目進行維護。
內頁插圖
精彩書評
“本書是超yue傳統應用和學習Django如何提高後端單頁麵網絡應用能力的一項重大資源。”
——Aymeric Augustin
Django核心開發者,oscaro.com的CTO
“我認為利用這種好的想法能夠大大降低成為開發者的門檻,閱讀這本書讓我很興奮!”
——Barbara Shaurette
Python開發者,Cox Media Group
目錄
前言.1
緒論.7
第1章世界上最小的Django 項目 11
你好Django11
改進15
第2章無狀態的Web 應用22
什麼是無狀態?.22
可復用應用與可組閤服務.23
占位圖片服務器.23
占位視圖25創
建主頁麵視圖.31
第3章創建靜態站點生成器.38
使用Django 創建靜態站點.38
什麼是快速原型?39
最初的項目結構.39
修飾頁麵41
生成靜態內容52
處理和壓縮靜態文件56
生成動態內容60
第4章構建REST API. 67
Django 和REST67
Scrum 闆數據圖68
設計API74
測試API82
下一步.96
第5章使用Backbone.js 的客戶端Django97
Backbone 簡述98
設置項目文件99
連接Backbone 到Django104
客戶端Backbone 路由106
構建用戶認證110
第6章單頁麵Web 應用132
什麼是單頁麵Web 應用?132
發現API133
構建主頁.136
sprint 詳情頁麵141
CRUD 任務.155
第7章實時Django165
HTML5 實時API 165
在Tornado 下使用websocket167
客戶端通信.175
第8章Django 與Tornado 通信195
從Tornado 接收更新195
改善服務器.200
最終的websocket 服務器212
前言/序言
自Django 創建以來,各種各樣的開源社區已經構建瞭很多Web 框架,比如JavaScript 社區創建的Angular.js 、Ember.js 和Backbone.js 之類麵嚮前端的Web 框架,它們是現代Web 開發中的先驅。Django 從哪裏入手來適應這些框架呢?我們如何將客戶端MVC 框架整閤成為當前的Django 基礎架構?
本書講述如何利用Django 強大的“自支持”功能體係。本書的目標是引導讀者跨越認為Django 太繁重而無法進行快速應用開發的誤區。從創建世界上最小的Django 應用到構建RESTful API ,本書將引導讀者學習如何利用這種流行的Python Web 框架。
寫這本書的目的
我們編寫本書主要是齣於對Django 的熱愛。我們的社區是令人驚奇的,它有很多資源可以用來學習Django 和開發應用。盡管我們也喜歡包括官方的Django 文檔在內的一些資源,但這僅僅是對Django 強大功能的過於關注,而非它的解耦設計。Django 是一個令人滿意的框架,它帶有很多用於構建Web 應用的通用程序。在本書中,我們要突齣說明如何將這些組件進行分離和間接替換,並從中選齣最適閤創建應用的一些組件來。同樣地,我們想要將Django 項目和應用的典型框架進行分解。我們的目標是使讀者不再提齣“我怎樣用Django 完成我的X 工作”這樣的問題,而是提齣“Django 能幫我完成X 工作嗎?如果不能,社區有可用的工具嗎”這樣的問題。
另外,我們想要迴答的問題是利用大量客戶端實時交互,以及與本地可移動應用匹配的組件構建更多應用時,將Django 放在網絡的什麼地方適用。作為框架,用戶對Django 一無所知,這使得一些喜歡Django 的用戶無法得到構建這種應用的指導。我們希望本書能夠幫助解決這些問題,想看到Django 及其社區日益壯大,並在多年後大傢也成為它的一員。
本書讀者對象
如果你喜歡閱讀本書,你很可能是Django 的中級用戶。在學習完Django 的注冊教程以及編寫瞭一些基本Django 應用後,很想知道下一步該如何做。本書接下來會幫助你基本掌握如何利用Django 的有效性和簡單性。
或者,你可能正在進行一個Django 項目,很想知道如何將Backbone.js 整閤到你的項目中。本書將引導你進行一些有關整閤的最好練習,並為構建內容豐富的Web 應用提供一個起點。
哪些人不適閤閱讀本書?
盡管本書適用許多不同背景的開發者,但並不能麵麵俱到。對於那些不具備編寫Python 和JavaScript 程序能力的人來說,這本書可能很不適閤。書中所有的概念和實例都是圍繞這些語言編寫的,並在每個章節中大量使用。對於那些初次接觸Django 的新手,也不適閤。
關於本書示例
書中的每個項目示例都是在快速應用開發的主旨下精心製作的。在每一章,都將學到在項目管理、工具和團隊閤作支持下創建項目的方法。我們想要讀者創建用於自己的項目,並能夠根據自己的需要進行定製。一般而言,本書提供的實例代碼,都可以在你的程序和文檔中進行使用,無需得到我們的許可,除非是更新代碼的重要內容。例如,使用本書中的幾個代碼塊編寫程序是不需要得到允許的。銷售或分發O’Reilly 書中的實例光盤就需要得到許可。引用本書或本書中的實例代碼解答問題不需要得到允許。將本書中的大量實例代碼集成到自己産品的文檔中需要得到許可。
我們很贊賞對本書的引用,但不要求。通常引用包括標題、作者、齣版商和ISBN 。例如:“《Lightweight Django》Julia Elman and Mark Lavin (O’Reilly),Copyright 2015 Julia Elman and Mark Lavin,978-1-491-94594-0 ”。
如果發現所使用的代碼示例超齣瞭上麵的許可範圍,可以隨時通過郵件與我們聯係:
permissions@oreilly.com 。
本書結構
第1 章,世界上最小的Django 項目。創建輕便簡單的網絡應用是本書的核心思想。在這一章,要創建一個可運行的單行文件“Hello World ”的Django 應用。
第2 章,無狀態的Web 應用。講述占位符圖像服務的創建方法。第2 章將引導讀者通過創建無狀態網絡應用來生成占位符圖像的URL 。
第3 章,創建靜態站點生成器。快速構建原型是一門有用的創建和輔助網絡應用的技術。我們要通過創建靜態網站生成器協助維護團隊項目的方式來檢驗該技術的效果。
第4 章,構建REST API 。REST API 是創建豐富的、具有內容相關性的網絡應用的重要部分。在這一章我們利用Django 靜態框架開始構建一個大比例的Scrum 闆應用。
第5 章,使用Backbone.js 的客戶端Django 。本章繼續講述在第4 章中用新構建的RESTful API 創建的Backbone.js 應用。介紹創建新Backbone 應用的每個組件以及如何用Django 同步該客戶端框架。
第6 章,單頁麵Web 應用。單頁麵網絡應用是一種能夠創建豐富客戶端網絡應用的途徑。在本章,我們將迴到簡單的Backbone 應用中,不斷使這個單頁麵應用更加健壯。
第7 章,實時Django 。這一章講述創建響應實時交互的網絡應用,為用戶提供及時滿意的服務。為瞭繼續完成先前兩章的項目,我們要將一個實時組件添加到使用網絡插件和Tornado 的Scrum 闆上,這是一個用Python 編寫的異步網絡庫。
第8 章,Django 和Tornado 通信。將強大的Django 與Tornado 的健壯特性相結閤是創建可變、實時的Django 應用的重要標誌。在本章中,我們將通過集成Django 的通信能力擴展Tornado 服務器的功能,來建立一種既安全又可交互的聯係。
緻謝
有許多人需要感謝,沒有他們的努力這本書是不可能完成的。本書的編輯Meghan 給瞭我們很大的支持。
感謝技術評論員Aymeric Augustin 、Jon Banafato 、Barbara Shaurette 和Marie Selvanadin 給我們的評價,無論是錶揚還是批評,對我們盡力完成這本書都給予瞭幫助。也要感謝Heather Scherer 對本書給予的技術指導。
對所有開源的開發人員和提供者錶示感謝,他們無窮無盡的努力為本書提供瞭使用和寫作所需的各種工具。
感謝早期版本的讀者,他們給瞭我們完成工作的機會,使我們能夠解決敲字和格式缺陷等問題,並提供瞭反饋,從而使錯誤得到糾正。
Julia
我非常感謝我極其可愛的傢庭和親密的朋友,他們對我寫作本書給予瞭一貫的支持。感謝我的丈夫Andrew ,對我能力的信任和在漫長與崎嶇的寫作過程中的一貫鼓舞和堅定的支持。感謝我的母親Katherine ,她使我超越瞭自己的能力。感謝我的繼父Tom ,他教我如何使用無綫電鑽為我的汽車更換機油,為我灌輸瞭艱苦工作的價值。感謝我的哥哥Alex 和姐姐Elizabeth ,他們一直作為旁觀者為我鼓勁。感謝我最好的朋友Jenny ,她給瞭我永恒的愛和終生的友誼。
還要對我的極好的閤作者Mark 的卓越纔能和友誼錶示感謝。他是我曾經閤作過的最有纔能的開發者之一。我們並肩完成瞭這本書,我不能想象與其他人閤作撰寫這本書會是怎樣一個過程。
我還要非常感謝Python 社區和在我的事業上給我靈感、鼓勵和指導的特殊成員:James Bennett 、Sean Bleier 、Nathan Borror 、Colin Copeland 、Matt Croydon 、Katie Cunningham 、Selena Deckelmann 、Jacob Kaplan-Moss 、Jessica McKellar 、Jesse Noller 、Christian Metts 、Lynn Root 、Caleb Smith 、Paul Smith 、Karen Tracey 、Malcolm Tredinnick 、Ben Turner 和Simon Willison 。
輕量級Django 下載 mobi epub pdf txt 電子書