Django 學習順序及入門要求?

沒有web開發經驗和相關背景。

有c語言基礎和python語法基礎。

在進行django學習之前,還有哪些基礎要求?

django的學習順序是什麼?

時間較緊張,做一次自己一向鄙視的伸手黨。抱歉抱歉。。


樓上有朋友說的很對,其實你有了python的基礎以後,去學django是很容易上手的。之所以覺得有難度,是因為你可能對一般web框架沒有一個認識。對於裡面的互相模塊間的邏輯關係沒有吃透。

我這裡看到有個人發布的視頻教程,非常好。並且是1080P高清的。

這個人講解的非常好,如果我當初學框架的時候早點看到這個教程,我也不會學的那麼辛苦。

他今天已經發了4節課的教程了。

地址是

[django視頻教程]python django的安裝和基本操作

--繁花嗅

[django視頻教程]理解django框架的邏輯結構,創建第一個app

--繁花嗅

[django視頻教程]django資料庫的安裝,配置和創建數據模型

--繁花嗅

[django視頻教程]django裡面的url和views

--繁花嗅裡面有原始的高清視頻下載地址,和他這節課的一個總結在貼裡面。


小組現已解散,最終成果:

教程:Django 博客開發入門教程 - 追夢人物的博客

Django Python 論壇:pythonzhcn - 首頁

Django 學習小組知乎專欄: Django 學習小組 - 知乎專欄

-------------------------------------------------------------------------------------------------------------------------

學完 python 想學 django,正好我最近組織了一個 django 新人學習小組,並開始一邊學習一邊做項目實踐。正好目前進行到第一周,小組正在做一個 Blog 程序,雖然簡單,但是足以帶你進入 django 開發的大門,歡迎 follow 我們,並期待您的建議和意見。

簡單介紹一下小組的運作模式:我們在每個周末會開一個小組討論會,討論下一周的開發內容,每個人根據其分配的任務去學習相應的文檔。但是不僅僅是做完自己的工作就完事了,每個人在學習的過程中還要把自己學的東西講給全小組的人聽(主要是寫成一份和自己工作相關的文檔),讓其他的組員都明白你做了什麼,這樣你不僅學到了自己該學的,也學到了其他組員學到的東西。

目前我們正在進行第一周的項目,第一周的學習文檔已經出來了,發布在簡書上:Django學習小組出品:一起來做一個簡單的Blog第一周文檔(教程)。我把摘要部分貼出來,感興趣的朋友可以去簡書上閱讀原文。

此外歡迎關注我們的 github 組織首頁,所有項目的相關源代碼都會上傳到 github 上。每周更新,但是代碼量不大,確保在新人的接受範圍內,這樣可以讓新手完全跟上我們的學習和開發進度。

第一周文檔的摘要:這一周我們小組完成了 Blog 首頁的搭建。

本節是 django blog 項目的開篇,是 django 學習小組的集體學習成果。django學習小組是由我發起的一個促進 django 新手互相學習、互相幫助的組織。小組在一邊學習 django 的同時將一起完成三個項目:

  • 一個簡單django blog,用於發布小組每周的學習和開發文檔
  • django中國社區,為國內的 django 開發者們提供一個長期維護的 django 社區,聚集全國的 django 開發者到這個社區上來
  • django 問答社區, 類似於segmentfault 和 stackoverflow但更加專註(只專註於 django 開發的問題)的問答社區

目前小組正在完成第一個項目,本文即是該項目第一周的相關文檔。

更多的信息請關注我們的 github 組織首頁,本教程項目的相關源代碼也已上傳到 github 上。
同時,你也可以加入我們的郵件列表 django_study@groups.163.com ,隨時關注我們的動態,我們會將每周的詳細開發文檔和代碼通過郵件列表發出。
如有任何建議,歡迎提 Issue,歡迎fork,pull request,當然也別忘了 Starred 哦!
每周更新,敬請關注

——by Django 學習小組,期待您的建議和意見


貼一個很早之前挖的坑,可惜這坑一直沒填上。中間列了些知識點,是當時整理的框架,可以按照這個順序來逐步加深對Django的認識。

========================分割線========================

Learn Django from scratch

Python Web Development Guide

為什麼寫這篇教程

- 國內學習Django的新人越來越多,由於沒有好的教程,許多人學習不得要領,對Django產生了錯誤的理解

- 使用Django已經多年,想做些事情回饋社區

- 目前沒有看到特別好的中文教程,如果有,也就不需要再多寫一篇了

- 現有的文檔和教程不是為初學者設計的

- 如果照著那些一上來就教你怎麼做一個博客的教程來學,就像是學習圍棋只知道定式,或者像看論文只看結論,而不看證明過程。初學者需要了解的是how it works而不是how to use it

適合哪些人

- 有一定編程基礎,希望學習Django掌握網站開發技能的新手

- 已經使用Django一段時間,希望更加深入的了解Django的原理以及實戰技巧的Django用戶

如何學習

- 本文主要是引導初學者一步一步的理解Django的設計思路,對於Django各個部分的介紹已經有很好的文檔了,將會大量引用

- 閱讀引用的文檔

- 閱讀引用的源碼

- 當你不明白為什麼的時候,讀源代碼

由於大部分內容是個人經驗的總結,如有錯誤和不準確的地方,還請各位高人指正

1. 網站開發基礎

雖然是一篇Django的教程,考慮到大部分學習Django的朋友對於網站開發並沒有深入理解,這裡先講一些基礎知識

許多朋友學習Django不得要領也是因為缺少基礎知識的支撐,

網站開發歷史

HTML HTTP

HTTP Server

basehttpserver

靜態網頁

Simplehttpserver

apache

CGI

CGIHTTPServer

WSGI

wsgiref

2. 史上最爛Web框架

urldispatcher and function

3. 如果用Django來實現會是什麼樣子的

urls.py and views.py

4. 配置文件

settings

5. 按照app來組織代碼

MVT模型

6. 跟資料庫通訊

models.py

7. 表單處理

forms.py

8. 更好的生成頁面

templates templatetags

9. middleware

10. contrib apps

auth

admin

staticfiles

11. 用正確的方法來組織網站源代碼

python package

12. 第三方package

djangorestframework

south

13. 測試

14. 部署

nginx

gunicorn

postgres

fabric

15. advanced topics

long polling

websocket

tornado

mongrel2

========================分割線========================

補一句,其實最好的學習方式還是讀源代碼。讀Django的源代碼,讀好的第三方package的源代碼。然後模仿和借鑒。當看的多了,就能夠分辨好壞了。


Python 基礎

當你學到 Django 的時候,我們默認你已經有了 Python 基礎。如果你沒有 Python 基礎,或者認為自己還需要在 Python 基礎上多花一些時候,你可以選擇從以下三本書著手。

  • 《Python編程 從入門到實踐》 (Python Crash Course: A Hands-On, Project-Based Introduction to Programming)這本書的作者就是 Django 項目的維護者之一。本書在學習 Python 基礎的同時,可以學到一些 Python 的最佳實踐(當然談到最佳實踐,有更多的進階書籍的選擇)。推薦本書的另一個原因是書籍質量不錯,在美國亞馬遜的 Python programming 排行榜上榮獲「Best seller「,194個讀者綜合評分為4.4的高分(滿分5分)。
  • 《"笨辦法"學Python(第3版)》 (Learn Python the Hard Way) 這本書簡稱「LPHW」,是經久不衰的 Python 入門書。本書強調的是肌肉記憶,強調的是編程猶如彈吉他,需要親手實踐、加強肌肉記憶。如果你對編程也沒有太多概念,這本書會比較輕鬆的帶你入門,增強你的編程自信心。
  • 《Python 基礎教程》(Beginning Python: From Novice to Professional) 如果在這三本中選一本必看的基礎書,個人更偏好、也更推薦這一本。作者對基礎知識的講解清晰明了,內容簡單但是並不膚淺。講解過程通暢,基本不存在費解的情況。代碼小片段實例比比皆是,馬上就可以動手實踐來理解概念,可以讓人更容易記得住,學習的效果也是相當好。較深的概念有延展的介面,提供方向供後期自己去擴展。值得一提的是,目前這本書中文翻譯是仍然是2009年英文版的 Python 2.7,而今年(2017年)4月Apress出版社繼續推出了該書最新的第三版,已經使用 Python 3 的版本(暫無中文版)。作者 Magnus Lie Hetland 在 2006 年開始寫作第一版至今,時隔11年還能繼續推出最新版,而且內容質量靠譜,實在難能可貴。

Django 與 Python 開發環境問題

注意:目前在維護 Django 版本為:Django 1.8(長期支持版,LTS),Django 1.10,Django 1.11(最新版,長期支持版,LTS,也是最後一個支持 Python2的版本)。

如果學習資料是這些版本以前的版本,比如 Django 1.7,則不建議再學習已經過時的資料。對於書籍是否已經過時,Two Scoops 的作者 Daniel R. Greenfeld(也是Django的項目維護者)有一個書籍清單供參考(Current Django Books)。

Django 的版本以及 Python 開發環境至關重要,請在最開始學習 Django 的時候就引起重視。由於 Python、Django以及其他第三方包的版本不同,有時候會產生與學習資料不一樣的結果。建議學習過程中注意兩點:

  • 為每一個項目建立虛擬環境,建立相對獨立的開發環境
  • 嚴格按照學習資料的版本進行開發。注意是 Python 2 還是 Python 3,Django 的版本、以及第三方包的版本號。

Django 基礎

1. 視頻

推薦使用慕課網的兩門免費在線視頻課程作為入門:

  • django初體檢
  • django入門與實踐

這兩門課基本涵蓋了 Django 最核心、同時也是最常用的部分,他們會給你建立一個 Django 的整體概念,便於消除你對 Django 的陌生感和恐懼感。

如果想進一步詳細的了解 Django,有個綜合性的教程名叫

  • 《Django 企業開發實戰》

該教程包含 gibbook 電子書(免費)以及視頻部分(收費)。該教程之所以比較推薦,作者是搜狐的胡陽(博客地址)。陽哥長期在搜狐大量實際使用 Django,而且對源碼比較熟悉,所以該教程講得深入淺出,有不少獨到的見解。

2. 文檔

在有了視頻的感性認識之後,建議馬上閱讀完 Django 文檔的新手入門6個部分的內容,並親手實踐讓代碼能跑起來。文檔是最權威也是最全面的 Django 參考資料。

  • Getting started Django 1.11 英文原版文檔的新手入門部分。
  • Django 中文文檔 1.8 Django 1.8 的中文文檔(gitbook在線書)。

3. 書籍與博客

3.1 英文

  • Mastering Django: Core: The Complete Guide to Django 1.8 LTS 這本書就是大名鼎鼎的 Django Book 的最新版本。本書前7章是連貫的學習教程,可作為入門教材,後面的章節以講解概念為主。《中文版的 Django Book》 使用的是 Django 1.1 版本,已經嚴重過時,中文版本僅供參考。作者的主頁是 djangobook.com。
  • Hello Web App 作者之前主要從事前段工作,以一個新手的視角來完成本書。整書敘述流暢,以及跟著書完成代碼。作者還有一本後續的書籍 Hello Web App: Intermediate Concepts ,內容稍微深一些。

另外有人也經常推薦以下內容,供參考:

  • Tango With Django: A beginner"s Guide to Web Development With Python / Django 1.9 值得注意的是這本書被列為 Two Scoops 的作者列為過時書籍。
  • Django Girls Tutorial Django Girl嚴格來說已經相當於是一個商業組織,因為該組織在賣周邊、做培訓,但是入門教程還是不錯的,內容基本與 Tango with Django 類似。最近還推出該入門教程的擴展部分。

3.2 中文

  • 自強學堂:Django 教程 內容詳實免費。值得一提的是作者使用 Django 建站,完全是在實踐 Django 的使用,而且作者從2015年至今一直在根據 Django 版本升級而更新教學內容,從最初的 Django 1.6 更新到了 Django 1.10。作者稱最新版本的 Django 1.11 內容馬上就要推出。
  • Django Girls 教程 Django Girls 的中文版,使用 Django 1.8。
  • 追夢人物的博客 以 Django 1.10 為基礎開發博客到部署的完整教程。

Django 進階

1. 視頻

中文視頻內容有很多,但是從內容的深度、廣度、教學實踐、教學質量來看,推薦慕課網的強力 Django 內容。

  • 強力django+殺手級xadmin打造上線標準的在線教育平台 慕課網付費課程。雖然收費,但是課程質量上佳。內含一個 refresh 的小項目和一個較大的系統項目,涉及 Django 的內容較廣,完成後可以達到上線標準。常被譽為「Django課程的良心之作」。

英文視頻中,美國的 Justin Mitchel 長期專註於做 Django 培訓。他的部分教學視頻也放在 YouTube 上。推薦三門系列課程,分別是完成一個基本博客,增加複雜功能,到使用 django-rest-framework。內容詳實,值得一看。

  • Try Django 1.9
  • Advancing the Blog
  • Blog API with Django Rest Framework

2. 書籍

  • Two Scoops of Django:目前有兩個版本 Two Scoops of Django: Best Practices for Django 1.11 和 Two Scoops of Django: Best Practices for Django 1.8 。這本書在 Django 的名氣也是非常大,基本可以說影響過大多數 Django 開發人員,如果要進階稱為 Django 專業開發者,這本書是繞不過去的必看書籍。內容主要涵蓋 Django 的最佳實踐。
  • Django By Example 在進階的課程中,本書算是不錯的。雖然一些章節(比如第7章)部分代碼仍然存在 bug,但是一方面作者正在該書主頁不斷進行代碼更正,另一方面也是對中國讀者最好的是,這本書已經由同在簡書的 @夜夜月 進行了全書翻譯:《Django By Example》中文版。
  • Django Unleashed 內容覆蓋較廣,很多內容在其他書籍中並沒有提及,比如密碼的hash與加密等。但是沒有實戰項目。
  • 《Python Web 測試驅動方法》 雖然測試驅動的開發方法(Test-Driven Development,TDD)並不是每個項目都會採用,但是測試的思想與方法還是值得去掌握。Python 作為一門動態語言,沒有靜態類型檢測的情況下,測試的重要性就顯得尤為重要。本書使用 Django 的整個開發流程作為實例,作者不僅講了開發過程單元測試和 Selenium 測試,同時也把部署的內容也覆蓋到。內容始於 Django,但不僅僅是 Django,相信使用其他框架的 Python 開發者也可以從中獲益匪淺。

3. 博客

  • Vitor Freitas: Simple is better than complex 作者是旅居芬蘭的巴西人,博客上有76篇關於 Python、Django 以及網路開發的文字。文章質量較高,可以郵件訂閱。
  • Huang Huang 的博客 之所以提到這個博客,主要因為作者認真寫了三篇關於《High Perfomance Django》的閱讀筆記:筆記一、筆記二、筆記三。從資料庫優化、緩存、容災、後台視圖完善,這些一點一滴的內容都是 Django 項目開發過程中遲早會遇到的瓶頸,看一下這些內容也許就會對後面的解決方案有更深的理解。比如『話說Django orm性能為什麼比原生的mysqldb慢』這篇文章就遇到了後台報表頁面打開很慢的坑,這也是完善提高 Django 性能的地方。

Django RESTful API

Django 的 REST 化主要是兩個第三方包:django-rest-framework 和 django-tastypie。雖然後者開發時間較早,但是最推薦的是前者,即 django-rest-framework。該框架內容更全,調試也方便。

1. 文檔

django-rest-framework 的文檔分為英文和中文。英文就是原版的網站,中文有兩個作者的翻譯,但都是只翻譯了入門部分。

  • 英文版文檔
  • 中文文檔有兩個,可以對照看:中文文檔 Roy 版本 以及 中文文檔 Eason版本。

2. 視頻

  • Vue+Django REST framework 打造生鮮電商項目 可能是目前中文 Django 教學視頻中最好的課程,教學時間長度與內容都有相當的保證。視頻作者 Bobby 詳細闡述了自己對的 Django 的理解,可以讓人知道多種遞進式 rest API 開發方式。得益於 Bobby 精益求精的態度,個人覺得乾貨的程度即使與國外的內容比較也是不逞多讓。另外再加上與 Vue 前端的整體交互綜合開發,已經可以初步滿足一個中小企業的網路解決方案。
  • Build Your Own Backend REST API using Django REST Framework 作者是英國人 Mark Winterbottom,編程專業,而且講課細緻到位。
  • Blog API with Django Rest Framework 仍然是之前提到的美國人 Austin Mitchel 的 YouTube 課程。

3. 書籍與博客

  • 《輕量級Django》 英文版是Lightweight Django: Using REST, WebSockets, and Backbone,嚴格來說這不是一本完全講 rest-framework 的書,而是講解如何從傳統的 Django 過渡到前後端分離 Django 。
  • Building RESTful Python Web Services 內容涉及 Python 三大網路框架:Django,Flask以及Tornado。
  • Haiiiiiyun:Django REST 框架 V3 教程,講到 rest 的7門課程。

Django 業界最新信息

  • Django: Under The Hood 專註於 Django 的內容,雖然著名的 PyCon 經常請 Django 專家去演講,但是 Django: Under The Hood 基本都是 Django 的大牛,比如2016年壓軸演講是邀請了 Instgram 的後端去講解 INS 如何用 Django 做成了如此規模巨大的社交圖片分享網站。該組織近兩年的演講內容都分享在 YouTube 上可以找到。Django Under The Hood:YouTube地址
  • PyCon 也非常關注 Django 的發展。Django 並非完美無缺,在網路技術高速發展的今天,Django 也需要及時的進化以適應形勢。在 PyCon 上,對 Django 熱愛程序員們,提出了尖銳的 Django 問題,隨後也有新的解決方案出來。的有代表性的演講包括:
    • Why Django Sucks - PyCon SE 2015 作者提出 Django 在某些方面跟不上網路技術的發展趨勢,提出了自己的三點建議。
    • Reinventing Django for the Real-Time Web - PyCon 2016 作者是 Django 的 Channel 部分的開發者,專註於 Socket 的包裝與編程,以實現 Django 的伺服器推送、非同步 Socket 等功能。
    • Building Dynamic Dashboards With Django and D3 - PyCon US 2016 比較好的把 Django 與 React 以及 D3 結合在一起為警局提供數據看板項目。

修改記錄

2017-10-23 更新內容

  • Python 基礎部分:不再推薦《Python學習手冊(第4版)》。基礎書籍數量保持三本,增加推薦新書籍,本書不再推薦。

被刪除內容:

《Python學習手冊(第4版)》 (Learning Python, 5th Edition)本書中文是第四版,英文已經更新到第五版。該作者長期從事 Python 教育,他知道學習者通常會問什麼問題,所以講解也是比較詳細。如果你需要快速入門 Python ,不推薦這本書。但是相信你在 Python 進階過程中,遲早會遇到一些很 Pythonic 的問題,比如:字典的三種創建方式、列表推導式(list comprehension)和裝飾器(decorator)。你可以在這裡快速找到詳細的講解。作者的另外還有兩本高質量的 Python 書值得一讀:Python Pocket Reference: Python In Your Pocket (Pocket Reference (O"Reilly)) 以及Programming Python: Powerful Object-Oriented Programming。

  • Python 基礎部分:增加推薦《Python 基礎教程》
  • Django 進階部分,2. 書籍:增加《Python Web 測試驅動方法》。
  • Django 進階部分,3. 博客:增加 "Huang Huang 的博客"。
  • Django RESTful API,2. 視頻:增加 "Vue+Django REST framework 打造生鮮電商項目"。
  • 修改部分格式錯誤。


贊同樓上說的,我就不重複了,直接甩你一個伸手黨喜聞樂見地址:

Django官方Tutorrial中文版:django 1.8 中文文檔

1.10不完整新手引導:jhao104/memory-notes

中文版的問題是翻譯一直跟不上版本更新的速度。

所以英語可以的話還是去看官方文檔:Django documentation


http://djangobook.py3k.cn/2.0/

這個中文譯本不錯 。

這本書適用 1.0幾的版本 ,比較容易學 。現在的1.6.1 的版本 會複雜一點 。

基礎知識 呢,以我這小白的感覺認為 要:

  1. 會點命令行

  2. 基本HTML 語法(多然越多越好,雖然我現在還是只知道標籤要用兩個尖括弧而已~)

  3. 資料庫的知識 ,比如創建資料庫,表 。(create ,select 之類。)

  4. 適量Python ,因為語法很像 。

  5. 了解一下CGI ,雖然實際用途不大,但是 可以幫助我們理解 映射的關係 :

個人理解就是:CGI的就是老闆(HTML)叫員工(py)去做事 。現在Django呢, 就高端一些 。老闆有了秘書(url.py) ,通過urls.py ,來讓員工(views.py)去做事。

6 ,正則表達式嘛,至少要知道 一點吧 。(程度只要能把一些網址用正則表達式寫出來,這樣呢,交代給秘書(urls.py) 。

ps: 因為我只看到第八章 ,所以就知道這麼些 需要 ,學習的話循序漸進 ,不懂的就去google ,stackoverflow

共勉!


從09年開始用django至今,不過最近1年沒怎麼用django,因為工作原因主要在用tornado。

我學django是挑挑揀揀的用,今天要用什麼就去看什麼,把官方那個文檔翻來覆去的看,每當我覺得看完了的時候,又會在文檔里找到點新東西,很有意思。

django值得學習的地方(個人喜歡的地方)

  • ORM (省事,方便,優雅。 雖然很多人對它的實現和性能有詬病,不過我覺得一個程序員不要還沒開始干就扯性能,拋開業務需求談性能純粹屬於耍流氓,當然你要是產品上線到產品下線都不重構一次代碼都話,那我也沒什麼話好說的)

  • 自帶的User Auth(擴展性和安全性不需要我們一把屎一把尿的去搭建了,安全省心,你能想到的人家早已經想到了)
  • Url mapping (省事)
  • Forms(這玩意我用得少,因為第一個系統的表單複雜度不太適合用它,不過如果是做一些大眾,通用性的東西,用它很省事)

不喜歡的地方:

  • 模版 不說跟別的模版系統比,連tornado的模版都甩它幾條街,想實現個複雜都東西就得用tags,極其蛋疼。
  • 兼容性差,麻痹的曾經有一段時間我好不容易從1.4遷移到1.5,沒幾天1.6又出來了,我趕緊把自己到幾個應用遷移上去,還有一個沒遷移完1.7又尼瑪出來了,而且都沒辦法平滑都遷移 ,據說現在有1.8了,不過我暫時沒興趣用。

總結下來就是,如果想一上手就開始專註寫業務的話,用django是你的不二選擇,其他的框架輕量級是輕量了,但是難免重複造輪子,我們現在的項目用tornado,光寫適合的底層框架就又搞了接近2個月才能開開心心的寫業務。

至於怎麼學就不提了,去搞就好了,遇到問題就翻官方文檔。


前幾天剛是社群的小夥伴寫了個博客,Django寫博客是很多學習Python人必經之路,今天我特別整理了一個建博客實錄出來希望可以是Django學習之路的一個好啟發,希望對大家有幫助。

——————————

1.django簡介

Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MVC的框架模式,即模型M,視圖V和控制器C。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟體。並於2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。

Django是一個基於MVC構造的框架。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以 Django 里更關注的是模型(Model)、模板(Template)和視圖(Views),稱為 MTV模式。

Django適合快速開發web開發。

1.1Django的結構模型

1.2Django相關依賴的環境和安裝

1.準備一個linux的虛擬機

2.安裝一個pyenv:具體安裝的方法看這裡

http://www.yulongjun.com/python/20170507-02-pyenv-centos/

3.通過pyenv 安裝一個python3.6.2

pyenv install 3.6.2

4.使用pip安裝:

pip install django==1.11
pip install mysqlclient

5.安裝mysql資料庫

1.3Django的簡單配置

新建一個項目:

django-admin startproject blog
在項目裡面新建一個app和相關的模版靜態文件:
cd blog
python manage.py startapp ariclte
mkdir templates
mkdir static
mkdir media
配置相關的設置
cd blog
vim settings.py
vim urls.py

settings.py配置

urls.py配置

2Django操作資料庫

2.1Django裡面主要使用orm來操作資料庫

我們來看下什麼是orm

使用orm有什麼好處

Dajngo的orm-model

1.什麼是ORM?

ORM,即Object-Relational Mapping(對象關係映射),它的作用是在關係型資料庫和業務實體對象之間作一個映射,這樣,我們在具體的操作業務對象的時候,就不需要再去和複雜的SQL語句打交道,只需簡單的操作對象的屬性和方法。

2.ORM的優缺點是什麼?

優點:擺脫複雜的SQL操作,適應快速開發;讓數據結構變得簡潔;資料庫遷移成本更低(如從mysql-&>oracle)

缺點:性能較差、不適用於大型應用;複雜的SQL操作還需通過SQL語句實現

2.2Blog的數據結構

blog的常用的數據結構:

文章,分類,評論,註冊

一般來說一個blog至少包含這4個表

我們今天只寫文章表和分類表

大家可以先自己想下:

文章表和分類表包含的欄位是哪些?

文章和分類是什麼關係?

文章和用戶又是什麼關係?

表之間是否需要外鍵進行關聯?

表之間的關係:

一個用戶可以發表多篇文章

一個分類裡面也多篇文章

分類和用戶沒有直接的關係

理清這些之後,現在開始編寫對應的model模型

2.3編寫models.py

2.4創建和同步資料庫

3.Admin

3.1 admin

1.django自帶一個admin的後台,只需要簡單的配置就能讓我們快速的使用,這是django的一個強大之處。

2.配置admin.py之前,需要先了解一下admin的用法

需要繼承admin.ModelAdmin
list_display:admin 後台顯示的欄位
search_fields:admin 後台查詢的欄位
fields:允許修改的欄位
actions: 禁用的操作
admin.site.register: 關聯model和admin

3.2 編寫admin

4.djangod的視圖

4.1Django的視圖

Django有很多的優秀的視圖:

View
DetailView
ListView
FormView
CreateView
DeleteView
UpdateView

我們的blog裡面暫時只用到了ListView和DetailView

4.2使用dajngo自帶的ListView

? 編寫app的views.py

4.3用django自帶的DetailView

4.4配置app的urls.py

4.5 啟用django

訪問admin後台

填充相關的信息

5.配置相關的模板

5.1配置app的模板

1.把模板的index.html 放到templates裡面

2.模板的css,js,images,fonts,kindeditor放到static裡面

3.模版聲明:此模版來自http://www.lushaozhen.com/

5.2模版繼承-base.html

1.首先新建一個base.html

聲明模版

第一行:{% load staticfiles %}

2.block

母版html中將一些需要替換的部分用{% block xxx %}。。。{% endblock %}括起來

模版繼承-index.html

模版繼承-detail.html

5.3前端展示-列表頁面

5.4前端展示-詳情頁

好了,以上為60分鐘建立一個個人博客的全部流程,希望大家玩得爽。

最後把辛苦的作者小智老師介紹下,馬哥教育Python自動化實戰師傅,原百度時代有限公司福州研發分公司移動雲事業部高級運維開發工程師,現福建某文化發展有限公司技術經理,從事4年的python開發和pythonweb開發,擅長團隊協作,性格開朗,愛分享。

原文地址:十分鐘學會用Django快速搭建一個blog

————————

歡迎大家指正和補充。

你想更深入了解學習Python知識體系,你可以看一下我們花費了一個多月整理了上百小時的幾百個知識點體系內容:

【超全整理】《Python自動化全能開發從入門到精通》筆記全放送


文檔已經很清晰簡單了,學就是了。

基礎肯定是共通的,如果簡單來說,就是html/css/js還有資料庫的sql等,還有最關鍵的Python本身要有一定的了解。


慢慢寫感覺django這個東西學的時候好缺教程,python web的教程都是東一榔頭西一棒子的

#python語法

函數

裝飾器

#url

普通的url匹配函數

```

url(r"^login/$",views.login,name = "login"),

url(r"^regist/$",views.regist,name = "regist"),

url(r"^index/$",views.index,name = "index"),

url(r"^logout/$",views.logout,name = "logout"),

```

url正則獲得參數

```

url(r"^shopopen/(?P&d+)/$", views.shopopen, name="shopopen"),

url(r"^shopclose/(?P&d+)/$", views.shopclose, name="shopclose"),

```

#get請求

```

def regist(request):

if request.method == "GET":

return render(request, "regist.html",{})

```

#post請求

```

def getpost(request):

if request.method == "POST":

email = request.POST.get("email", "")

password = request.POST.get("password", "")

```

#cookie操作

setcookie

getcookie

```

def index(request):

pkey = request.COOKIES.get("pkey","")

return render_to_response("index.html" ,{"pkey":pkey})

```

清除cookie

#session

#Model

get就是查,filter表示=,exclude表示!=。

get

```

Person.objects.get()

```

filter

```

Product.objects.filter(shopproduct__shopperson__pkey=pkey).filter(is_delete=False)```

```

OneToOne

OneToMany

ManyToMany

正向多表查詢

反向多表查詢

Q

F


Django是MVC(Django內稱MTV)模式的Web框架。如果沒有Web經驗,學任何框架都不會很快,Django可能會是先對比較容易上手的。

建議了解一下MVC模式(網路上有很多教程應該),再看一些HTML / CSS / JS的基礎知識,w3shool的教程就OK。

學習Django的話,可以看官方文檔,官方文檔有一個類似introduction的東西,如果覺得理解起來困難,可以先搜中文版本的django book。

等到有了一個對Web Framework / Django 初步的認識了解,可以深入看一些Django的特性。

愚見,僅供參考。


因為看到有不少人對django這麼好用的框架存有疑惑,為此,我最近寫了一套教程,沒錯,

我不挖坑,我是直接寫好了一套教程再來回答這類問題的。。希望能得到知乎首贊。

只要你有一點python基礎,那麼,你可以考慮一下我最近寫的教程,新鮮出爐,跟官方文檔不一樣那玩意比較生硬,翻譯起來就更生硬了,事實上,我嘗試過翻譯,但是覺得對新手沒啥用,因為新手真的會很迷茫,其實他們倒不是因為django而迷茫,是因為不懂網路服務方面的知識,這涉及到這方面實在太多了,這時候很多人直接就甩你什麼HTML,CSS,JS,甚至什麼Linux,一大堆亂七八糟的東西。事實上,要想開發網路項目,有些東西是必不可缺的,但是有些卻可以因為django的精妙設計而不用去理會,本文就是要抽絲剝繭,使用比較通俗易懂的語言,講解一些我認為比較重要的內容,這樣即使你對網路方面沒太多概念也無所謂。你會跟著教程一步一步完成一個比搭建博客啥的更加高端的項目,網路雲盤。

總之,不如去試試。

http://lier.space


tango with django Tango with Django 中文文檔


推薦一個django學習網址:曉林網


我自己目前在學的這個, Django框架的


xadmin是基於Python和Django的管理框架,想要能夠熟練使用,學習Django是必須的。在學習Django的過程中,不妨用xadmin來驗證下新的效果是怎樣的。site_title和site_footer都是可以通過程序設置的變數,那麼想要設置這兩個變數要怎麼做呢?只要在adminx.py文件中添加GlobalSetting類。可以邊看Django文檔,邊用xadmin實現,然後去查看xadmin中的代碼,雖然感覺吃力,但是會有收穫,也能認識到xadmin和Django自帶的admin之間的區別。


源碼+官方文檔,就是比較費勁 看起來。


感覺編碼是個大問題,其他倒是很方便的


發現很多時候都需要定製或者重寫= =


我一直在看這個,The Django Book。適合django 1.8以前的版本。


推薦閱讀:

django怎麼讀?
學習 Python web 框架前需要掌握什麼?

TAG:Python | Django框架 | Python框架 |