官术网_书友最值得收藏!

前言

隨著深度學(xué)習(xí)的流行,Python逐漸走到了互聯(lián)網(wǎng)的幕前,它在多個(gè)領(lǐng)域使用廣泛:機(jī)器學(xué)習(xí)、數(shù)據(jù)分析、Web服務(wù)、自動(dòng)化運(yùn)維,等等。Django是Python在Web框架中的代表作品。學(xué)習(xí)Django源碼,一方面,能從中學(xué)到許多Python的高級(jí)用法;另一方面,能深度掌握Django框架,并能隨時(shí)對(duì)其進(jìn)行定制和改造,這對(duì)一個(gè)Python程序員的成長(zhǎng)至關(guān)重要。此外,在Django源碼中,很多函數(shù)與類均可在簡(jiǎn)單改造后直接加入開發(fā)人員手頭的代碼庫中。

撰寫本書的主要原因有兩個(gè):一是想將筆者剖析Django源碼的過程記錄下來,二是想給一些Django初學(xué)者開啟一個(gè)新的進(jìn)階方向。

Django源碼十分適合初學(xué)者學(xué)習(xí),因?yàn)镻ython源碼與C++源碼相比難度要低許多,而且調(diào)試方便,讀者可以隨時(shí)打印結(jié)果進(jìn)行驗(yàn)證。以Django源碼為入口切入開源世界,對(duì)Python愛好者而言,再合適不過了。

本書特色

本書的主要特色有:

◎ 對(duì)Django的源碼進(jìn)行了合理選擇,并不會(huì)盲目追求最新與最小版本,而是從適合的角度進(jìn)行考慮。

◎ 對(duì)Django的源碼進(jìn)行了合理歸類與總結(jié),并按照歸類結(jié)果依次解讀相關(guān)源碼,循序漸進(jìn)。

◎ 有對(duì)Django源碼細(xì)節(jié)的豐富解讀,直接使用實(shí)戰(zhàn)的方式幫助讀者理解相關(guān)類與方法。

◎ 對(duì)Django源碼的解讀均采用先上手并提問的方式,然后會(huì)帶著問題去跟蹤源碼,最后閱讀完相關(guān)模塊源碼后會(huì)統(tǒng)一對(duì)前面提出的問題進(jìn)行解答。這很符合初學(xué)者的閱讀習(xí)慣,使得閱讀本書十分順暢。

本書內(nèi)容

全書共分為8章,分別是Django源碼的前置知識(shí)、Django命令原理解析、Django內(nèi)置的ORM框架、Django內(nèi)置的模板系統(tǒng)、解讀Django核心模塊的源碼、Django的視圖層、Django的中間件原理和解讀Django中的輔助代碼。本書展示了剖析Django框架的完整過程,這種剖析方式同樣適用于其他框架,如Flask、Ansible和Scrapy等。

本書對(duì)Django源碼進(jìn)行了全面解讀,針對(duì)很多源碼細(xì)節(jié)使用了大量的演示實(shí)例,以便讀者更好地理解Django框架的核心源碼。本書給讀者提供了一個(gè)解讀完整開源項(xiàng)目的案例,讀者在學(xué)完本書后,可以將本書剖析Django源碼的方式應(yīng)用于其他Python開源項(xiàng)目,收獲良好的學(xué)習(xí)效果。

本書的思維導(dǎo)圖如下所示。

讀者對(duì)象

想要學(xué)習(xí)本書的內(nèi)容,領(lǐng)會(huì)其中的分析思路,讀者需要具備一定的Python基礎(chǔ),同時(shí)要有堅(jiān)持學(xué)習(xí)的信念,本書適合以下讀者閱讀:

◎ 具有一定Python基礎(chǔ)的開發(fā)人員;

◎ 希望熟練使用Django框架進(jìn)行Web開發(fā),而且想深入了解Django核心源碼的后端開發(fā)人員;

◎ 渴望進(jìn)入開源世界,探索一個(gè)頂級(jí)開源項(xiàng)目全貌的初、中級(jí)程序員;

◎ 高等院校的老師和學(xué)生;

◎ 相關(guān)培訓(xùn)機(jī)構(gòu)的學(xué)員。

配書資源獲取方式

本書涉及的源碼需要讀者自行下載。在博文視點(diǎn)網(wǎng)站(http://www.broadview.com.cn/)搜索本書,單擊進(jìn)入本書頁面,即可在本書頁面上找到下載鏈接。此外,可以通過微信搜索“源碼探索之旅”公眾號(hào)并關(guān)注,筆者會(huì)在上面對(duì)讀者的一些疑惑進(jìn)行文字或視頻解答。

致謝一

在本書的寫作過程中,我充滿著感激之情。

感謝我的家人!感謝父母和姐姐給我的鼓勵(lì)與支持,沒有他們就沒有我的今天,我也不會(huì)有機(jī)會(huì)接觸計(jì)算機(jī)行業(yè)。

感謝我的女朋友黃寶寶,她花費(fèi)了休息時(shí)間幫我修改書稿中的不當(dāng)語句和錯(cuò)別字,給予我充分的時(shí)間專注于核心內(nèi)容。

感謝天翼云科技有限公司的領(lǐng)導(dǎo)黃潤(rùn)懷和我的直接上級(jí)領(lǐng)導(dǎo)林潔琬組長(zhǎng),他們給我們組創(chuàng)造了一個(gè)難得的機(jī)會(huì),讓我們能全身心地投入分布式存儲(chǔ)領(lǐng)域中。正是這次機(jī)會(huì),讓我在自動(dòng)化運(yùn)維領(lǐng)域自由探索。由于工作的需要,我接觸了許多基于Python開發(fā)的開源項(xiàng)目,也逐漸愛上探索開源工具內(nèi)部的源碼。

感謝同一屆進(jìn)入公司的同事:商金輝、李浩、全樹強(qiáng)和張一飛,每天吃完晚飯?jiān)诼飞虾岛Y┑娜兆樱媸橇钊藨褢侔。?/p>

感謝媒體存儲(chǔ)小分隊(duì)的黃鵠、陳濤、毛廷鴻、譚偉杰、吳文峰、楊佑,他們豐富的互聯(lián)網(wǎng)經(jīng)驗(yàn)給了我很多幫助,也讓本書的寫作比預(yù)期順利很多。

感謝本書的編輯安娜,她的耐心和細(xì)心促成了本書的快速交付;還要感謝其他為本書的出版提供過幫助的編輯和朋友!沒有他們的大力支持,本書也很難與讀者見面。

沈聰

致謝二

我們能順利完成本書既離不開自己的付出和努力,也離不開家人和同事們的大力支持。他們的支持讓我在編寫本書的道路上走得更加順利,我要向他們表示最真摯的謝意。

首先,感謝我的妻子對(duì)我的關(guān)心和支持。在技術(shù)探索和創(chuàng)作的歷程中,她的關(guān)心讓我充滿了前進(jìn)的動(dòng)力,這也讓我能夠走得更遠(yuǎn)。

其次,感謝本書的合著者沈聰先生。他喜好鉆研,技術(shù)能力強(qiáng),我們?cè)诠ぷ髦卸啻魏献鹘涣鳎屛沂芤娣藴\。本書的創(chuàng)作也凝聚了他的心血和精力。

最后,感謝我的領(lǐng)導(dǎo)林潔琬組長(zhǎng)和其他同事。在林潔琬組長(zhǎng)的帶領(lǐng)下,我們項(xiàng)目組的業(yè)務(wù)和技術(shù)都突飛猛進(jìn),也讓我有了更多的機(jī)會(huì)對(duì)Django框架進(jìn)行實(shí)踐和探索。項(xiàng)目組的資深運(yùn)維工程師陳濤、毛廷鴻、譚偉杰、楊佑等對(duì)我們基于Django框架的項(xiàng)目開發(fā)提供了寶貴的建議和技術(shù)支持。

全樹強(qiáng)

技術(shù)支持

Django項(xiàng)目如今依舊頻繁迭代著,在本書正式出版時(shí),書中介紹的Django版本距離最新版本可能會(huì)有較大差距。盡管版本可能差距較大,但筆者發(fā)現(xiàn)Django的核心源碼及相關(guān)邏輯一直未有大的改變,讀者可以放心閱讀。筆者完成本書所需的主要素材只有Django源碼,許多Django術(shù)語(比如核心模塊、中間件等)都是直接翻譯英文注釋而來,可能會(huì)有不當(dāng)之處,加之筆者水平和精力所限,書中可能存在一些疏漏與錯(cuò)誤,敬請(qǐng)各位前輩、同行、讀者不吝指正。如果在閱讀本書時(shí)有疑問,可以發(fā)送電子郵件到2894577759@qq.com,筆者當(dāng)盡力解答相關(guān)疑問,與讀者共同成長(zhǎng)與進(jìn)步。

主站蜘蛛池模板: 安西县| 昌图县| 泰宁县| 通化市| 增城市| 寻乌县| 丹江口市| 新龙县| 扶绥县| 阳西县| 沾益县| 班戈县| 开阳县| 贵南县| 庄浪县| 娄底市| 弋阳县| 台南市| 桐柏县| 海城市| 兰溪市| 财经| 澄迈县| 安阳县| 博湖县| 黑水县| 卢湾区| 甘谷县| 金华市| 河池市| 渭源县| 石景山区| 仁化县| 咸宁市| 荃湾区| 唐海县| 漯河市| 读书| 汶上县| 犍为县| 宣武区|