圖靈原創

Django企業開發實戰:高效Python Web框架指南

胡陽 (作者)
上市銷售
專享福利:騰訊云代金券

購買本書后,通過封底的刮刮卡密碼,可以獲得價值100元的騰訊云代金券
(滿125元減100元),它可用于購買騰訊云所有預付費產品,領取規則、指引詳見:
https://cloud.tencent.com/act/turing。
本書以從零開發一個博客系統為例,介紹Django在日常工作中的應用。
本書共分為四部分。第一部分介紹編碼之前的準備工作,包括需求分析、Web開發基礎以及選型時Demo的練習。第二部分開始正式實現需求,介紹了環境配置、編碼規范以及合理的項目結構劃分。通過對Django各部分(Model、Form、admin、View)的介紹和使用,完成了一個基礎的博客系統。第三部分在前面的基礎上介紹Django第三方插件的使用,通過引入這些插件進一步增強我們的系統。最后一部分也是正式工作中必不可少的部分,包含調試代碼、優化系統、壓力測試以及自動化等內容。
本書適合Python Web開發人員閱讀。

安徽快三输死了多少人 www.cwilrw.com.cn 收藏本書能做什么?

有情況的時候會收到通知,比如電子書發布等。

PS:也會在圖靈社區電報頻道更新

紙質書
¥78.21 ¥99.00

出版信息

  • 書  名Django企業開發實戰:高效Python Web框架指南
  • 系列書名圖靈原創
  • 執行編輯關于本書的內容有任何問題,請聯系 王軍花
  • 出版日期2019-01-25
  • 書  號978-7-115-50689-4
  • 定  價99.00 元
  • 頁  數372
  • 印刷方式單色
  • 開  本16開
  • 出版狀態上市銷售

所屬分類

同系列書

  • Linux就是這個范兒

    趙鑫磊   Jie Zhang(張潔)  

    本書內容源自淘寶技術大學的培訓實戰。由來自阿里巴巴集團的資深Linux系統專家趙鑫磊和同樣來自阿里巴巴集團的支...

  • Go語言編程

    本書以介紹Go語言特性為主,示例則盡量采用作者開發團隊平常的實踐,內容涉及內存管理(堆和棧)、錯誤處理、OOP...

  • 一個64位操作系統的設計與實現

    田宇  

    本書講述了一個64位多核操作系統的自制過程。此操作系統自制過程是先從虛擬平臺構筑起一個基礎框架,隨后再將基礎框...

  • 翻譯漫談——怎樣翻譯更地道

    余晟  

    翻譯是一門非常強調實踐并依賴練習的手藝活,這本書是作者從翻譯“票友”出發,走“野路”逐漸成長為翻譯“熟手”的經...

  • 推薦系統實踐

    項亮   陳義   王益  

    本書從數據出發,一步步地介紹在得到什么數據的時候可以設計怎樣的推薦系統。面向廣大的推薦系統開發人員,以實戰為基...

本書特色

通過從零開發到部署完整案例,介紹Python Web框架Django在企業中的應用
資深開發工程師the5fire多年開發經驗總結
以博客系統為原型,教你以真實的視角搭建自己的生產環境

目錄

序一 閱讀
序二 閱讀
前言 閱讀
第一部分 初入江湖
第1章 需求
第2章 框架基礎和技術選型 閱讀
第3章 Django小試牛刀
第二部分 正式開發
第4章 進入開發
第5章 奠定項目基石:Model
第6章 開發管理后臺
第7章 開發面向用戶的界面
第8章 引入前端樣式框架Bootstrap
第9章 完成整個博客系統
第三部分 第三方插件的使用
第10章 使用第三方插件增強管理后臺
第11章 使用django-rest-framework
第四部分 上線前的準備及線上問題排查
第12章 調試和優化
第13章 配置MySQL和緩存
第14章 上線前的準備
第15章 升級到Django 2.0
第16章 最后總結
附錄A 使用Fabric 2.0
附錄B 使用uWSGI來啟動Django程序
附錄C Sentry安裝和配置
附錄D 評論驗證碼功能 
附錄E 通過signal來解耦代碼
附錄F 實現文章置頂的幾種方案
附錄G 以騰訊云為例演示部署流程

作者介紹

胡陽,網名the5fire,前搜狐資深開發工程師,現任知乎資深開發工程師,負責部分業務的后端開發和團隊管理。同時也是騰訊云最具價值專家(TVP)。
具有10年編程經驗和寫博客經驗,喜歡通過代碼來構建一些有價值的東西,也愛好記錄和分享自己的經驗。
2011年從Java轉到Python后,便不可自拔,主要熟悉的Web框架是Django和Tornado。贊嘆于Python的開發效率,欣賞Django完備的功能點對實際項目開發中程序員生產力的提升。

大家也喜歡

  • Python數據科學與機器學習:從入門到實踐

    【美】弗蘭克?凱恩(Frank Kane)   陳光欣   譯

    本書介紹了使用Python進行數據分析和高效的機器學習,首先從一節Python速成課開始,然后回顧統計學和概率...

  • 深入理解Python特性

    [德]達恩·巴德爾(Dan Bader)   孫波翔   譯

    本書致力于幫助Python開發人員挖掘這門語言及相關程序庫的優秀特性,避免重復勞動,同時寫出簡潔、流暢、易讀、...

  • 精通特征工程

    愛麗絲·鄭   阿曼達·卡薩麗   陳光欣   譯

    本書介紹大量特征工程技術,闡明特征工程的基本原則。主要內容包括:機器學習流程中 的基本概念,數值型數據的基礎...

  • Python科學計算最佳實踐:SciPy指南

    [澳]胡安?努內茲-伊格萊西亞斯   [美]斯特凡?范德瓦爾特   [澳]哈麗雅特?達士諾   陳光欣   譯

    本書旨在介紹開源的Python算法庫和數學工具包SciPy。近年來,基于NumPy和SciPy的完整生態系統迅...

  • Flask Web開發:基于Python的Web應用開發實戰(第2版)

    [美]米格爾?格林貝格   安道   譯

    本書共分三部分,全面介紹如何基于Python微框架Flask進行Web開發。第一部分是Flask簡介,介紹使用...

相關文章

  • 威靈頓 3推薦

    為什么你應該在項目中使用pyenv+Pipenv:為項目設置超棒的本地開發工作流之秘籍

    譯者評價: 軟件開發者對工程環境、對開發工具的追求是不會止步的。隨著開發要素的變遷,工具會不斷演進、創新,來適應新的需求,解決面臨的各類問題??⒄叨孕鹿ぞ叩耐誥?理解/采納,也會反復循環。我們肯定得考慮切換工具的成本,但是也不能固步自封,因循守舊。這個就要自行評估和平衡了?!?..

  • 張敏 11推薦

    Django 最佳學習路徑 | 涵蓋眾多學習資源

    ![enter image description here][1] 學習編程的路上, 下面的場景你是否似曾相識? ———— 場景一 當初,零編程基礎,想做個網站。 聽說Python能做網站,而且很屌, 于是我… ...

  • An楠 推薦

    00 | 作者介紹

    我的經驗,或許對你有用 —胡陽(the5fire) ...

  • An楠 推薦

    00 | 課程介紹

    課程目標: 了解正式環境中的Django/Web開發 學習真實項目開發中涉及到的技能 理解Web系統的原理 能夠使用Django獨立開發項目 ...

  • An楠 推薦

    第1章 需求

    凡事得有個來由,就像物理中的能量守恒定律一樣,各個??椋ú棵?、組)之前相關作用、推動,讓這整個公司的業務運作起來。不可能憑空產生能量。做項目開發也是一樣,總得有一個需求過來,啟動一個項目,或者推動整個項目的進展。這個需求可能是老板提出來的,也可能是產品提出來的,最終到開發組這里…...

  • An楠 推薦

    01 | 需求

    這是產品經理跟開發人員交流的必不可少的東西,很多東西如果不落實到文檔上,出了問題很難追溯。另外交流基本靠吼的方式也很容易丟失信息。所以無論是什么需求,能落實到文檔上的一定要落實。即便是臨時需求也要通過郵件的方式溝通。 接下來說博客開發的需求。 博客的需求說明 介紹 博…...

  • An楠 推薦

    02 | 需求分析/評審

    對于有經驗的產品經理來說,在做任何需求的時候,都會計劃的足夠細致,落實到一個功能點。更好的是能夠出原型稿。之后可以通過原型來對每一個功能點進行逐一核對。 對技術來說評審的目的有三個 一、明確所有的需求點,避免返工; 二、確認技術可行性,避免延期或者后面再修改需求; 三、確…...

  • An楠 推薦

    03 | 功能分析

    功能分析 上一節我們對需求進行了評審,經過對細節的溝通之后,產品對需求進行了修改和明確。 需求列表 用戶端部分 網站需要對SEO友好,具體可參考搜索引擎站長白皮書,另外需要給搜索引擎提供xml格式的sitemap文件。 博客需要提供搜索功能,搜索范圍限定在標題,分類,…...

  • An楠 推薦

    04 | ??榛?/a>

    功能??榛趾圖際醯? 從前面的幾篇文章,我們已經知道了一個需求經過怎么樣的產品跟技術之間的溝通或者PK之后,才能確定下來。當我們有了完整的需求之后,再接下來的一步就是做功能分析和技術選型,以及架構設計。 但是,很重要的一點是,需要再次提醒一下。一定要問清楚后期產品上的計劃,…...

  • An楠 推薦

    第2章 技術選型

    框架基礎和技術選型 上一章中我們對需求進行了評審和分析,最終得到了具體要開發的功能點,以及對??榻辛嘶?。現在我們需要做的是根據要開發的功能進行框架的選擇。 針對不同的場景,選擇不同的技術架構,所產生的開發成本和維護成本都不一樣。特定場景下合適的技術架構能夠讓開發人員更快…...

  • An楠 推薦

    01 | 技術選型

    Python2.7 vs Python3.x 選擇2和選擇3是近幾年來比較流行的一個“話題”,當然這個只是在網絡某些論壇或者社區里。在真實的環境下沒有這么多的糾結。選擇目前應用最廣泛的,周圍人都在用,并且自己團隊能夠hold住的,就是最合適的選擇。對于2和3的差異,其實寫起代…...

  • An楠 推薦

    02-1 | WSGI02 (上)

    WSGI——Web框架基礎 簡介 WSGI,全稱是Web Server Gateway Interface(Web服務網關接口)。 這是Python中的定義的一個網關協議,規定了Web Server如何跟應用程序進行交互。Web server可以理解為一個Web應用的容器…...

  • An楠 推薦

    02-2 | WSGI02(下)

    簡單的WSGI application 理解了上面的代碼之后,我們繼續看看WSGI協議,也就是我們一開頭介紹的。WSGI協議分為兩部分,其中一部分是Web Server或者Gateway,就像上面的代碼一樣,監聽在某個端口上,接受外部的請求。另外一部分是Web Applica…...

  • An楠 推薦

    03 | Flask

    Flask框架 [https://github.com/pallets/flask][1] 上節我們講了兩種提供Web服務的方式,分別是一:直接通過socket來處理http請求; 二:通過實現WSGI Application部分的協議。 基于這兩種方式我們完全可以自己寫…...

  • An楠 推薦

    04 | Tornado

    Tornado 框架 [https://github.com/tornadoweb/tornado][1] 印象 在工作中使用Tornado到現在也有5年了。相對于上一節的Flask,我對Tornado非常熟悉。但是如果要總結Tornado的特性的話,那也只是 高性能 ?!?..

  • An楠 推薦

    05 | Django

    Django框架 [https://www.djangoproject.com/][1] the5fire使用Django的時間比Tornado還久,在我從Java開發轉到Python開發時直接是從Java的SSH(Struts、Spring、Hibernate)框架逃離到…...

  • An楠 推薦

    第3章 小試牛刀

    Django小試牛刀 前面的課程中,我們經過了需求分析,經過了技術選型,選擇了我們匹配我們需求的框架。 在這一章,用我們選出來的框架簡單做一個系統出來。在正式開發流程中,我們有可能會在選型的階段來完成這部分內容。這是在我們對所有要用的框架都不熟悉的情況下。我們需要分別做一個…...

  • An楠 推薦

    01 | 如何閱讀文檔

    如何閱讀Django文檔 通過文字的方式來描述似乎不是件容易的事,我盡量通過文字表達清楚。 文檔結構 Django是基于MVC模式的框架,雖然也被稱為“MTV”的模式,但是大同小異。對我們來說,需要了解的是無論是MVC模式還是MTV模式,甚至是其他的什么模式,都是為了解耦…...

  • An楠 推薦

    02 | Model及Admin

    學員管理系統 這一節讓我們來快速的過一下Django的各個???,在上一節內容中,你可能了解了Django所提供的功能,這一節我們來切實體會一下。你最好打開你熟悉的IDE,一起寫起來。 需求 一句話就能描述清楚的需求:提供一個學員管理系統,一個前臺頁面,展示現有學員,并供新…...

  • An楠 推薦

    03 | 前臺開發

    學員管理系統- 前臺 開發首頁 有了上一節的Model和Admin的部分,我們接著來做一個簡單的用戶提交申請的表單頁面。 首先在student/views.py文件中編寫下面的代碼: # -*- coding: utf-8 -*- from __future__ imp…...

  • An楠 推薦

    04 | 進階-CBV和Middleware

    進階部分 雖然是一個簡單的Demo,但是有句老話叫:麻雀雖小五臟俱全,我們也得把常用的功能使用到。所以增加這一部分,包括:Class Base View, Middleware, TestCase這三個部分。 注意,如果你前面的例子沒有跑起來,可以先不看這一節,先把前面的代…...

  • An楠 推薦

    05 | TestCase及總結

    TestCase 單元測試是實際開發中,很重要,但是經常被忽視的部分。原因主要是編寫對于Web功能的測試所耗費的時間會高于你開發此功能的時間。因此對于需要快速開發、上線的業務來說,這個項目中關于單頁測試的部分很少。 單元測試的主要目的是為了讓你的代碼更健壯,尤其是在進行重構…...

  • An楠 推薦

    第4章 進入開發

    進入開發 這一部分我們將為正式開發做一些準備。比如環境配置,編碼規范,以及一個Django項目的項目結構。有了這個基礎之后,我們可以把任務進行劃分,不同的成員開發不同層的內容。 ...

  • An楠 推薦

    01 | 編碼規范

    編碼規范 這是一個老生常談的問題,但是新手往往意識不到這個問題的重要程度。沒有進行過團隊合作的人,往往編碼沒什么風格。因為他沒遇到這樣的問題?;蛘咚贍苡兇約旱姆綹?,但是對于團隊來說,編寫的代碼應該有一致的風格,否則整個代碼看起來會十分凌亂,不同成員不同的編碼方式、習慣,讓閱…...

  • An楠 推薦

    01-1-1 | 代碼規范之Python之禪

    相關講義請查看: 01 | 編碼規范 ...

  • An楠 推薦

    01-2 | 編碼規范

    相關講義請查看: 01 | 編碼規范 ...

  • An楠 推薦

    01-1-2 | 代碼規范之PEP8

    相關講義請查看: 01 | 編碼規范 ...

  • An楠 推薦

    02 | 虛擬環境

    虛擬環境 干凈,整潔,無副作用的項目本地和線上的運行環境 幾種方式: virtualenv project-env 項目目錄即虛擬環境 python3.6 -m venv project-env 項目目錄即虛擬環境 mkvirtualenv project-env 可以…...

  • An楠 推薦

    03 | 項目結構

    項目結構 原則 根據使用頻率以及需要依賴的文件合理的規劃項目文件結構,提高開發效率。 結構 project conf fabfile src requirements.txt setup.py others .gitignore 參考 [https://gi…...

  • An楠 推薦

    04-1 | Git版本控制基礎

    Git版本控制 版本控制并不是僅限于源碼管理這一領域,因為它的本質就是文件管理,因此你可以通過版塊控制,來管理一切基于文件的變更。 在版本管理領域,有很多工具可以使用,拿我自己用來的來說,早期都是在使用svn來做源碼管理,到了2011年之后,git盛行,就開始轉向使用git…...

  • An楠 推薦

    04-2 | Git版本控制進階

    git進階 常用的配置及alias 可以通過git config -l 查看所有的配置,push default是默認配置了 修改已提交的commit gitblame審查代碼 遠端和本地 git merge/pull request 提交代碼 無中間服務器如何提交pull…...

  • An楠 推薦

    04-2-1 | 常用的配置及alias

    相關講義請查看: 04-2 | Git版本控制進階 ...

  • An楠 推薦

    04-2-2 | 代碼的修改和審查

    相關講義請查看: 04-2 | Git版本控制進階 ...

  • An楠 推薦

    04-2-3 | 如何參與協作?

    相關講義請查看: 04-2 | Git版本控制進階 ...

  • An楠 推薦

    第5章 奠定項目基石-Model

    概述 這一章我們先來創建一個github上的項目:typeidea,這是我們整個項目的名稱,一個多人的博客系統。 在這一章我們會根據需求完成整個Model層的創建,理解Django中Model部分的知識點。 先實踐,后總結。 ...

  • An楠 推薦

    01 | 創建項目結構

    創建項目及配置 我們先來回顧下之前分析的需求,那份最終整理完的需求文檔,現在看了放的有點久了。不過中間經過的這些都是為接下來做鋪墊,實際開發中不會有中間這么多的環節,因為這些都是預備知識,你不懂這些,應該是進不了正式的開發團隊的。 好了,廢話不多說,先來創建項目typeid…...

  • An楠 推薦

    02 | 編寫Model層代碼

    按照上節課的結構整理完項目之后,我們來創建Model層代碼,不過在此之前,我們先來看下之前整理的Model需要的模型和字段: 文章: - id - 標題 - 作者 - 分類(多對一) - 標簽(多對多) - 摘要 - 正文 - 狀態 - 發布時間 分類: - id … ...

  • An楠 推薦

    02-1 | 創建blog???/a>

    按照上節課的結構整理完項目之后,我們來創建Model層代碼,不過在此之前,我們先來看下之前整理的Model需要的模型和字段: 文章: - id - 標題 - 作者 - 分類(多對一) - 標簽(多對多) - 摘要 - 正文 - 狀態 - 發布時間 分類: - id … ...

  • An楠 推薦

    02-2 | 創建config???/a>

    按照上節課的結構整理完項目之后,我們來創建Model層代碼,不過在此之前,我們先來看下之前整理的Model需要的模型和字段: 文章: - id - 標題 - 作者 - 分類(多對一) - 標簽(多對多) - 摘要 - 正文 - 狀態 - 發布時間 分類: - id … ...

  • An楠 推薦

    02-3 | 創建comment???/a>

    按照上節課的結構整理完項目之后,我們來創建Model層代碼,不過在此之前,我們先來看下之前整理的Model需要的模型和字段: 文章: - id - 標題 - 作者 - 分類(多對一) - 標簽(多對多) - 摘要 - 正文 - 狀態 - 發布時間 分類: - id … ...

  • An楠 推薦

    02-4 | 創建Model 的回顧我總結

    按照上節課的結構整理完項目之后,我們來創建Model層代碼,不過在此之前,我們先來看下之前整理的Model需要的模型和字段: 文章: - id - 標題 - 作者 - 分類(多對一) - 標簽(多對多) - 摘要 - 正文 - 狀態 - 發布時間 分類: - id … ...

  • An楠 推薦

    04 | Model層- QuerySet 總結

    Model層- QuerySet 總結 在Django的Model中,QuerySet是一個重要的概念,必須要了解的!我們在創建完Model以及建好數據庫表之后,接下來需要做的就是創建Admin界面,還有開發前臺頁面。 上一節我們對Model中的字段做了詳細的了解,也對OR…...

  • An楠 推薦

    03 | Model層Fields總結

    Model-Field總結 在寫完這些Model以及對應的字段之后,你可能會疑惑這些不同的字段分別是意思,以及為什么需要怎么寫。 在進行詳細的字段介紹之前,先來梳理這樣的概念。Django的Model層給我提供了一套ORM(對象關系映射(Object Relational …...

  • An楠 推薦

    04-3-1 | 鏈式調用的接口

    本章課程講義: Model層- QuerySet 總結 ...

  • An楠 推薦

    04-3-2 | 非鏈式調用的接口

    本章課程講義: Model層- QuerySet 總結 ...

  • An楠 推薦

    04-1-1 | 理解加載和鏈式調用

    本章課程講義: Model層- QuerySet 總結 ...

  • An楠 推薦

    04-1-2 | 常用的Queryset接口

    本章課程講義: Model層- QuerySet 總結 ...

  • An楠 推薦

    04-2 | Queryset使用之番外篇-刨源碼

    本章課程講義: Model層- QuerySet 總結 ...

  • An楠 推薦

    04-4-2 | lookup語句

    本章課程講義: Model層- QuerySet 總結 ...

  • An楠 推薦

    04-4-1 Queryset進階接口

    本章課程講義: Model層- QuerySet 總結 ...

  • An楠 推薦

    04-4-3 | 補充values和value_list

    本章課程講義: Model層- QuerySet 總結 ...

  • An楠 推薦

    04-5-1 | 常見Queryset性能問題及優化

    本章課程講義: Model層- QuerySet 總結 ...

  • An楠 推薦

    04-5-2 | 理解層的概念

    本章課程講義: Model層- QuerySet 總結 ...

  • An楠 推薦

    第6章 開發管理后臺

    開發管理后臺 這一章我們主要使用Django自帶的admin來完成管理后臺的開發。 admin屬于Django的殺手锏了,對于內容管理系統來說,當你有了表,有了Model,就自動有了一套管理后臺,還包括權限控制,這簡直是不要太爽的操作。當然這得益于Django的誕生環境,也…...

  • An楠 推薦

    01 | 配置admin

    配置Admin頁面 基于我們上節課編寫完成的Model代碼,我們來配置admin的頁面。相對于重復編寫Model中字段的枯燥,編寫admin的代碼會比較有趣,因為能直接看到對應的界面展示,也能直接修改頁面展示。 廢話不多說,我們開始編寫admin的代碼。 blog 首先…...

  • An楠 推薦

    直播| Python Web開發者的破局之道

    Quora聯合創始人Adam D"Angelo在Quora開發中選擇Python時所說, 到目前為止,我們對這一選擇感到非常滿意...所有在過去一直使用其他語言的早期員工都樂意轉換到Python,尤其是那些做PHP的人。 因為 python代碼的優雅美觀且易于…...

  • An楠 推薦

    02 | 定制site和admin list

    定制admin 上一節我們完成了基礎的admin代碼編寫,已經得到了一個基本可用的內容管理系統,這一節我們來說下常用的定制行的操作。讓大家有一個初步的認識,后面在實現需求時還會做更多的講解。 框架為了達到更高的通用性,只會抽象出通用的邏輯。因此有些特性的東西需要我們自己來做…...

  • An楠 推薦

    03 | 刨源碼弄清楚list_filter

    刨源碼來看上節課的問題 實際項目開發中經?;嵊齙接肫諭環慕峁?,因此排查問題是必備技能,對于Python來說,看源碼也是相對容易的,這一節我們來通過源碼看下上節課的問題所在。 ...

  • An楠 推薦

    04 | 定制編輯頁面和自定義字段

    編輯頁面配置 save_on_top = True fields = ('title', 'category') fields = (('category', 'title'), 'content&#39…...

  • An楠 推薦

    05 | adminform和inlinemodel

    自定義form 還是只針對postadmin來增加form, 在blog目錄下增加文件(??椋゛dminforms.py 這里要命名為adminforms而不是forms,只為了跟前臺針對用戶輸入進行處理的form區分開來。里面編寫代碼,定義form。關于form的作用,我們…...

  • An楠 推薦

    06 | 重寫form和admin部分方法

    重寫form的clean_status方法 def clean_status(self): if self.cleaned_data['status']: return 1 else: return 3 重寫admin的save_model方法 def …...

  • An楠 推薦

    07 | 抽象admin基類

    抽象基礎Admin類 這一節我們來整理下admin的所有代碼,把演示的代碼去掉,按照正式的邏輯來完成代碼。 之前我們在每一個admin上都重寫了save方法,來做author——也就是當前作者進行處理,這一節我們來做一下抽象,避免重復的代碼到處出現。 抽象author基類…...

  • An楠 推薦

    第7章 開發面向用戶的界面

    開發面向用戶的界面 這一節我們開始編寫面向用戶的界面,只會涉及簡單的html結構,不會做太多的美化,這一節的目的就是,能夠把我們在后臺創建的數據,展示到前臺即可。 從技術上來講,這一節將涉及到Django中的Function View和Class Based View的使用…...

  • An楠 推薦

    01 | 搭建基礎結構

    第一節 搭建基礎結構&展示文章數據 在開發對用戶的界面是,我們首先要分析的是,需要有多少種url存在——即多少個頁面。然后再來編寫view的代碼,這樣可以更好的處理重復的邏輯。 其次我們要分析的是,頁面上需要呈現哪些數據。不同的數據意味著可能用到不同的model或者…...

  • An楠 推薦

    02 | 展示文章數據

    編寫正式的views代碼 這里我們先只處理文章相關的數據,其他數據暫時不處理。 配置模板數據 總結 這一節我們通過編寫function views代碼,把數據從數據庫中取出,放到模板中進行展示,下一節我們來補充通用的頁面配置,比如分類,標簽,最新文章,最熱文章等 參考…...

  • An楠 推薦

    03-1 | 分頁配置

    本小節主要以代碼演示為主,學習視頻即可。 ...

  • An楠 推薦

    03-2 | 側邊欄和分類數據的處理

    配置頁面通用數據 上節課我們把文章相關的數據做了簡單處理,這一節我們來把通用的數據都拿出來塞到頁面上。 分類信息 我們是把分類作為一個導航來展示給訪客/讀者的,在分類的設計上,我們也定義了is_nav的字段,作者可以確定哪些分類可以放到導航上。 我們先編寫獲取分類的代碼…...

  • An楠 推薦

    03-3 | 配置通用部分

    本小節以看視頻為主。 ...

  • An楠 推薦

    04-1 | Function View-vs-class-based-view

    升級至Class Based View 上一節我們完成了數據的展示,雖然整個流程有一些粗糙,但是數據是沒問題了。接下來需要做的就就是使用Class Based View進行重構。 之前也講到過,function view和class based view并沒有技術上的高低之…...

  • An楠 推薦

    04-2 升級為Class-based-vew

    理解Class Based View 我們想從文檔上來看下Django提供了多少種Class Based View,然后我們嘗試來總結下需要這種CBV的場景,以及相對于functin view的優缺點。 View TemplateView DetailView ListV…...

  • An楠 推薦

    05 | 總結view處理request流程

    總結一個request到來之后兩種view的處理流程 當django接受到一個request請求之后, 請求會先經過middleware的process request,然后會解析url,拿到對應的view(在urls.py中配置好的),調用view。middleware的流…...

  • An楠 推薦

    第8章 引入前端框架

    引入前端樣式框架(Bootstrap) 這一章我們開始引入前端框架,來美化我們的界面。前面章節中我們通過編寫后端代碼來處理數據,數據之于網站,就相當于靈魂之于人類。而網站的前端就相當于人的形體、外貌。其中HTML是骨架,而css是皮膚,js就是肢體動作,可以用來展示數據,可以…...

  • An楠 推薦

    01 | Bootstrap使用入門

    Bootstrap做一個簡單的頁面布局 在正式去改項目代碼之前,我們先做一個靜態頁面,根據我們之前的設計。這也是正式開發中常見的流程——有前端組/部門來做靜態頁面,后端來套頁面。 介紹 我們先來了解下Bootstrap是什么。Bootstrap發展到現在,已經不能夠用css…...

  • An楠 推薦

    02-1 | 美化系統頁面

    美化頁面 盡管使用bootstrap,我們可以很快的做出來一個頁面。但是我們需要意識到的一點是,css、html和bootstrap的關系,就像是Python和Django的關系一樣。 簡單使用Bootstrap和Django,都沒有問題。如果想要深入,那前提是必須要掌握好…...

  • An楠 推薦

    02-2 | 美化系統界面

    本小節以視頻課為主要學習內容,無參考資料。 ...

  • An楠 推薦

    02-3 | 美化系統界面

    本小節以視頻課為主要學習內容,無參考資料。 ...

  • An楠 推薦

    03 | 處理靜態資源

    配置靜態資源 在前面的章節我們,我們是把css直接放到html文件中編寫,css的依賴直接使用的是網上的cdn資源。這節課我們需要把css拆分出來,成為單獨的css文件,通過link標簽加載。 拆分的原因 一般情況下來說,css樣式直接寫到html中沒什么問題,樣式展示上…...

  • An楠 推薦

    第9章 完善整個博客系統

    完成博客系統 上一章中我們完成了頁面樣式的配置,讓我們之前簡陋的頁面變得漂亮了些。我們也通過修改默認的Django的模板也靜態資源配置,讓我們的博客系統可以支持多套模板。 從界面上看,到目前為止我們有了以下頁面: 首頁 分類列表頁 標簽列表頁 文章正文頁 這離我們的…...

  • An楠 推薦

    01-1 | 增加搜索

    本小節以視頻課為主要學習內容,無參考資料。 ...

  • An楠 推薦

    01-2 | 增加作者文章列表

    本小節以視頻課為主要學習內容,無參考資料。 ...

  • An楠 推薦

    02 | 增加友鏈頁面

    本小節以視頻課為主要學習內容,無參考資料。 ...

  • An楠 推薦

    03-1 | 增加評論功能

    增加評論??? 評論提交的方式 js異步提交數據 當頁提交 單獨頁面提交 優缺點 修改模型 post --> target 兼容多種頁面 migrations的作用和意義 抽象出評論??樽榧蚼ixin 作業 通過自定義tag實現評論??櫚淖榧? 參…...

  • An楠 推薦

    03-2 | 增加評論功能(續)

    增加評論??? 評論提交的方式 js異步提交數據 當頁提交 單獨頁面提交 優缺點 修改模型 post --> target 兼容多種頁面 migrations的作用和意義 抽象出評論??樽榧蚼ixin 作業 通過自定義tag實現評論??櫚淖榧? 參…...

  • An楠 推薦

    03-3 | 抽取評論模板

    本小節以視頻課為主要學習內容,無參考資料。 ...

  • An楠 推薦

    04-1 | 使用Markdown寫博客

    配置markdown編寫文章的支持 評論結果處理 增加是否使用markdown的選項 非markdown情況處理換行符 markdown使用配置 參考: [https://github.com/google/code-prettify/blob/master/doc…...

  • An楠 推薦

    04-2 | 優化Markdown代碼高亮

    配置markdown編寫文章的支持 評論結果處理 增加是否使用markdown的選項 非markdown情況處理換行符 markdown使用配置 參考: [https://github.com/google/code-prettify/blob/master/doc…...

  • An楠 推薦

    05-1 | 增加訪問統計

    增加訪問統計 統計的幾種方式: 基于當次訪問實時處理 基于當次訪問延遲處理 - celery js 放到頁面來統計或者img標簽 分析nginx日志 增加文章訪問統計 uv 判斷的幾種方式: redis/共享內存的方式:判斷用戶是否在多長時間內訪問過 瀏覽器端記…...

  • An楠 推薦

    04-3 | 補充內容:ace.js庫的使用

    本小節以視頻課為主要學習內容,無參考資料。 ...

  • An楠 推薦

    05-2 | 引入cache

    本小節以視頻課為主要學習內容,無參考資料。 ...

  • An楠 推薦

    第10章 使用第三方插件增強管理后臺

    使用xadmin增強管理后臺 admin其實一直是Django的殺手锏,試想一下,你需要做一個內容管理系統,還需要帶基礎的權限控制,你用一個微型框架,可能需要花你一兩天的時間,并且擴展性和可維護性基本上不會考慮。而Django在你建立好Model之后,提供了開箱即用的admi…...

  • An楠 推薦

    01 | xadmin介紹

    xadmin 介紹 xadmin是國人創建的一個開源項目,作者差沙(https://github.com/sshwsfc )。這個框架(django 插件)的口號是:Drop-in replacement of Django admin comes with lots of …...

  • An楠 推薦

    02-1 | 替換admin到xadmin

    替換admin為xadmin 從github安裝: pip install git+https://github.com/sshwsfc/xadmin。 admin --> adminx 兩個接口 get_queryset(self, request) --&g…...

  • An楠 推薦

    02-2 | 替換admin到xadmin(續)

    本小節以視頻課為主要學習內容,無參考資料。 ...

  • An楠 推薦

    03 | 配置autocomplete-light

    使用autocomplete優化性能 之前也到過這一點,無論是django自帶的admin還是xadmin,對于外鍵或者多對多字段的處理都比較粗暴,直接會加載到頁面上,生成一個select標簽,當關聯數據過大時會有很大的問題。 試想一下,當你的外鍵或者多對多字段有幾萬條數據…...

  • An楠 推薦

    04-1 | 配置ckeditor

    引入django-ckeditor 對于內容型后臺來說,輸入內容是最高頻的操作,因此需要能有一個更好的編輯器來替代我們之前簡陋的Textarea。這類編輯器被稱為富文本編輯器,或者也叫所見即所得編輯器。 同類的插件還有百度出品的ueditor,也有對應的django封裝:d…...

  • An楠 推薦

    04-2-1 | 上傳圖片的原理和配置

    上傳圖片配置 首先還是需要配置INSTALLED_APPS: 'ckeditor_uploader', 然后需要配置之前我們改過的content的widget為from ckeditor_uploader.widgets import CKEditorU…...

  • An楠 推薦

    05 | 勘誤和總結

    本小節以視頻課為主要學習內容,無參考資料。 ...

  • An楠 推薦

    04-2-2 | 自定義存儲及水印

    自定義存儲以及水印 上面的邏輯中沒有介紹存儲部分的邏輯,Django提供的默認的存儲方式是文件存儲。但是我們可以根據需求進行定制,要定制自己的Storage也很簡單,只需要繼承django.core.files.storage.Storage,然后實現幾個接口即可。主要的接口…...

  • An楠 推薦

    第11章 django-rest-framework使用

    Django-REST-Framework fix include的問題,django是支持include的 ckeditor url修改為: url(r'^ckeditor/', include('ckeditor_uploader.urls&#…...

  • An楠 推薦

    01 | restframework介紹和使用

    rest framework 相對于前面說到的xadmin插件,djangorestframework已經十分成熟穩定,可以放心的推薦到生產環境中,但是還是前面內容中提到過的一個問題,通用的東西勢必會帶來性能損耗,所以能不能上上產環境需要當局者(項目負責人)仔細權衡才行。 …...

  • An楠 推薦

    02 | 完成restful接口

    接口需求 首先還是需要說下我們的需求,我們需要配置一套restful接口,輸出所有的文章,功能跟web系統提供的類似,包含: 最新文章列表 分類列表 根據分類獲取文章 標簽列表 根據標簽獲取文章 都是只讀的功能。這樣的需求在實際的項目開發中很常見。當你開發了一套web…...

  • An楠 推薦

    03 | 配置detail接口中的分頁和總結

    完成所有的api配置 區分list和detail 方法內部指定serializer_class def retrieve(self, request, *args, **kwargs): self.serializer_class = PostDetailSerializ…...

  • An楠 推薦

    第12章 優惠與調試

    調試和優化 調試和優化是無處不在的,并不是說一定是在某個階段才需要做。有句話叫做:代碼不是寫出來的,而是調試出來的。這句話很有道理。 首先來說調試和優化的目的。調試是為了實現需求,或者為了優化程序執行時間而進行的不斷的嘗試,而優化的目的除了減少程序執行時間外,還有一點很重要…...

  • An楠 推薦

    01 | 調試手段:print /logger/pdb 大法

    常用的調試和調優手段 我們在前面章節中的代碼編程過程中,其實也不斷的在調試和優化代碼,無論是優化queryset還是進行函數或者類的抽象。 一般情況下我們有這么集中調試的方法。 調試手段 print大法 這個是最簡單,最直觀的方法,新手上來就會用。通過print來打印…...

  • An楠 推薦

    02 | 常用的調優手段

    調優手段 上面是調試的方法,這里介紹調優的方法。 純手工的timer 跟上面的print一樣,這也是最為直白的探測程序執行時間的方法,再要執行函數的前后增加 start = time.time() 和print(time.time() - start)就可以獲得到程序的執…...

  • An楠 推薦

    03 | debug-toolbar和silk的使用

    使用django-debug-toolbar優化 安裝 pip install django-debug-toolbar 配置develop環境 INSTALLED_APPS += [ 'debug_toolbar', ] MIDDLEWARE +=…...

  • An楠 推薦

    第13章 配置Mysql & Cache

    配置MySQL和Cache 這一章我們來準備正式環境的配置,配置mysql和cache ...

  • An楠 推薦

    01 | 配置MySQL

    配置Mysql 這一節我們可以見證框架的好處,或者說ORM框架的好處。我們在做軟件開發中,分層是十分常見的設計方案。分層的目的就是為了解耦,讓兩個本來完全相關的東西,通過中間加那么一層,從而隔離開。這樣的好處就是相互變化后不會相互影響。 比如這里我們把sqlite換成mys…...

  • An楠 推薦

    02-1 | Cache介紹

    Cache 首先我們得了解下什么是cache, 為什么要使用cache,然后再去了解django中的cache的問題 什么是cache cache = {} def query(sql): return cursor.exe_command(sql) 作業 **寫一…...

  • An楠 推薦

    02-2 | 配置Cache

    django中的cache配置 在django中可以配置多種cache源,就像是上節配置數據庫一樣。 redis,文件,mysql,內存都可以。 應用場景和緩存的粒度 不同的場景使用不同的緩存,配置不同的粒度。千萬不要以為緩存一定能夠優化你的訪問,一定要先知道項目的業務…...

  • An楠 推薦

    第14章 上線前的準備

    上線前的準備 在上一章節中我們已經開始為上線做準備了,每次上線我們都需要準備一個清單,需要規劃下部署結構,以及監控方案。 項目部署方案 首先我們需要搞明白的一件事就是,我們平時編寫的代碼是怎么著最終能為互聯網用戶提供服務的。這個過程其實就是軟件的部署。 ...

  • An楠 推薦

    01 | 如何部署你的項目

    你的代碼如何為提供提供服務 也就是如何部署你的代碼到線上,有幾種方式,首先理解基礎邏輯,打包,分發。 tar包 scp,最不濟用QQ傳(low...) gitlab --》 git pulll pypi docker 分發源 目標服務器 http代理 部署結構 ...

  • An楠 推薦

    02-1 打包

    部署準備 上一節我們介紹了軟件(或者我們稱作源代碼)分發的流程。這一節我們使用官方的pypi的方式進行打包,首先我們需要先配置下setup.py文件,這個是打包的分發的前提。 配置項目的setup.py coding:utf-8 from setuptools impor…...

  • An楠 推薦

    02-2 | pypi server

    配置pypi server 直接安裝即可: pip install pypi-server 啟動: pypi-server -p 8080 -P /opt/mypypi/.htaccess /opt/mypypi/packages .htaccess: yum …...

  • An楠 推薦

    02-3 | 自動化部署

    編寫自動部署腳本 fabric是個利器 首先,我們需要明確部署的邏輯是什么,然后才能用fabric自動處理。 創建虛擬環境 激活虛擬環境 安裝項目包 上傳supervisord.conf 啟動supervisord ansible && salt …...

  • An楠 推薦

    02-4 | 完善fabfile

    本小節以視頻課為主要學習內容,無參考資料。 ...

  • An楠 推薦

    03 | 監控準備

    監控準備 什么,線上掛了你竟然不知道?! sentry 日志 --> ELK --> Elasticsearch, Logstash, Kibana nginx日志分析 status code, 訪問量,后端耗時 部署sentry sentry是用來及…...

  • An楠 推薦

    04 | 你的系統能抗多少量

    來,試試你的系統能抗多少量 在介紹工具之前我們先要了解下壓測的目的,在介紹壓測的目的之前我們先來考慮一個問題。那就是你的網站或者你的接口需要承受多大壓力,或者說一天能承載多少用戶的訪問。 我們可以先從用戶端計算一下,如果一個網站,每天有10萬個活躍用戶,每個用戶每次會訪問平…...

  • An楠 推薦

    第15章 升級到Python3

    遷移到Python3 [https://pythonclock.org/][1] 這是一個生態問題,我們私底下可以研究和使用最新的技術,但是生產環境上一定要穩定。 就像我在知乎上的回答(歡迎去評論)如何看待 Instagram 將所有Web 后端遷移到 Python 3.…...

  • An楠 推薦

    01 | Python2-vs-Python3

    Python2 vs Python3 總結幾個主要的差別: 第三方庫,有些庫依然沒有支持到Python3,比如說Supervisord 參考: Python3 wall這是決定是否遷移的一個很大的因素 內部庫的變化: [Python3新特性][1] 基礎編碼的變化:…...

  • An楠 推薦

    02 | 開始遷移

    遷移到Python3 https://docs.python.org/3/howto/pyporting.html ...

  • An楠 推薦

    第16章 升級到Django2.0

    Django2.0 - Python2時代的逝去 ...

  • An楠 推薦

    01 | 升級到Django2.0

    升級到Django2.0 - 多么輕松 相對于Django1.11,Django2.0的上層接口變化并沒那么大,依然是Django一貫的各一個版本淘汰一些接口。 因為上節課我們已經升級到Python3了,因此對于升級Django2.0來說,只需要做些許改動即可。 Djan…...

  • An楠 推薦

    02 | 升級到Django2.0(續)

    升級到Django2.0 - 多么輕松 相對于Django1.11,Django2.0的上層接口變化并沒那么大,依然是Django一貫的各一個版本淘汰一些接口。 因為上節課我們已經升級到Python3了,因此對于升級Django2.0來說,只需要做些許改動即可。 Djan…...

  • An楠 推薦

    第17章 最后總結

    我們通過一個腦圖來梳理下我們這套課程下來一共涉及到哪些內容 ...

  • An楠 推薦

    01 | 最后但不是結束

    最后但并未結束 雖然是最后一節課,但這并不意味著這套課程結束了??緯痰氖奔溆邢?,不能把所有的問題都講到,正所謂:一千個業務類型就有一千種Django的用法,以及周邊庫的使用。 所以作為本次課程的購買者,你可以根據你的實際使用場景提出想要更多了解哪方面內容。我會根據大家反饋,…...

  • An楠 推薦

    02 | 后續內容

    TODO:后續內容 根據讀者反饋更新視頻內容 部署到vps上 優化系統結構,代碼 增加評論驗證碼 ckeditor增加代碼支持 增加一套主題 去掉autocomplete light 在課程下留言,根據留言多少可以規劃后面的內容 最后致謝! 歡迎評價 &&a…...

  • 可以像國外的出版社一樣,先出一個預覽版嘛,讓早期讀者可以早點看到書,同時也可以根據反饋對書進行調整
    huangke  發表于 2018-11-20 10:20:54
  • 請問這個有電子版嗎
    Jenson、  發表于 2019-01-21 14:46:18
  • 電子版 能早點出就早點出,我要買~~~話說你們圖靈出版個東西也太慢了~
    林瘋  發表于 2018-07-02 21:53:48
  • 我想知道是django什么版本的,是django2嗎?
    zerosail  發表于 2018-09-10 16:22:27
    • 您好!本書基于Django 1.11,但是第15章介紹了如何升級到Django 2.0。

      王軍花  發表于 2019-01-17 09:22:03
  • 挺慢的
    William葵花  發表于 2018-12-07 13:16:21
  • 希望能出電子版
    nonono  發表于 2019-01-14 15:31:30
    • 不太可能有電子版,有“圖靈原創”標簽的書大多數是不會出電子版的,搜索這個標簽的書有電子版的寥寥無幾,要么是紙書賣了好幾年后才出的,要么是不太受歡迎的書。

      readisgood  發表于 2019-01-14 20:28:16
    • @readisgood 怕盜版?

      威靈頓  發表于 2019-01-15 18:21:04
    • @readisgood 實際上,我覺得具體應用類的書籍,都應該電子化比較好,因為發展很快,實在太容易過時了。我書架上爭取只留下經典的常青樹作品。

      威靈頓  發表于 2019-01-15 18:22:38
    • @威靈頓 同意。紙質書太占地方了。。

      nonono  發表于 2019-01-16 09:57:22
  • 什么版本的django?
    xigaohu  發表于 2019-01-14 18:03:08
    • 您好!本書基于Django 1.11,但是第15章介紹了如何升級到Django 2.0。

      王軍花  發表于 2019-01-17 09:21:40
    • @王軍花 這本書會不會有電子版?

      猥瑣皮特  發表于 2019-04-13 17:15:18
  • 有電子版嗎?年前能買嗎?
    真無奈啊  發表于 2019-01-17 10:14:42
  • 是不是要過年后啊,
    limyel  發表于 2019-01-19 00:35:02
  • 隨書下載的代碼只有整體建構好后的代碼,沒有每章的代碼啊……
    斑比站在你身旁  發表于 2019-03-17 14:30:16
    • 這本書不是基于windows平臺開發的,里面的開發步驟基本不能再2019年使用。真辣雞,還是19年2月出版的……

      斑比站在你身旁  發表于 2019-03-17 15:45:30
    • @斑比站在你身旁

      git可以看到代碼的提交日志
      你們公司python開發用Windows?你怕不是在逗我...

      prince5460  發表于 2019-03-27 10:04:48
    • @斑比站在你身旁 Windows 一樣開發 Django 啊,,除了一部分要做一些細微的修改。。

      Manjusaka  發表于 2019-04-19 18:40:13
    • @斑比站在你身旁 每章代碼在分支里面,還有開發步驟怎么就不能在2019年使用了?素質堪憂

      huangke  發表于 2019-04-20 19:11:02
    • @huangke 用分支也不是不行,關鍵是被作者整的不同分支不在一條線,太亂了。

      laggard  發表于 2019-07-29 12:46:30
  • 本書最終產出的代碼,建議從 Github 上下載:https://github.com/the5fire/typeidea
    部分代碼在本書草稿的倉庫中,可以查看:https://github.com/the5fire/django-practice-book
    huyang  發表于 2019-05-08 21:22:51
  • 圖靈要改下經營思路了,紙質書又貴又慢,這書已經過時了。電子書是主流,都是憑賬號買的,不用怕盜版。
    學學  發表于 2019-05-31 19:21:59
  • 六一節,紙質書沒活動,營銷方案不科學。
    學學  發表于 2019-05-31 19:55:23