Django 博客教程:前言和環境安裝(連載一)

2021-12-09 Python中文社區

為什麼寫這個教程?

我從去年開始接觸 Python,為了能讓學習 Python 的過程不那麼枯燥,我決定一邊學習 Python 的同時一邊利用所學的東西開發一個網站。在權衡了多個 Python 界流行的 Web 框架後,我決定選擇django。 
然而 django 在國內的 Web 開發者中使用率其實並不高(不僅僅是 django,包括其他 Python Web 框架例如 Flask 等也面臨同樣的境遇),於是尋找合適的學習資料成了一件苦差。在兩個多月的時間內,我閱讀 The Django Book2.0 中文版(其內容已經嚴重過時),然後從網上搜到了一個利用 django 開發一個簡單的個人博客的教程,然而其中遇到的各種坑讓我在經歷了一個月的痛苦發開後徹底放棄了 django。django 高質量的中文學習資料實在太少了,而且中文社區支持也不友好,新人在開發中遇到問題通常求助無門。 
大概在幾個月前,我利用空閒的時間開始學習 django 的官方文檔,特別是其入門教程的 6 個 Parts 循序漸進,既覆蓋了 django 大部分的核心特性,又對新人十分友好,這重新激起了我對 django 的興趣。於是我心血來潮地在網上發起了一個組建 django 五人學習小組的活動,很快便得到了大家的響應。我們以互相分享各自所學的 django 知識並且利用這些知識合作開發一個項目的形式,順利地開發了一個 django 個人博客和一個 django 社區應用,並且還發布了一套 django 博客教程,但是由於當時自己也是學習 django 不久,對 django 的掌握程度還很不夠,教程也比較簡略,對想學習 django 的開發者依然不夠友好。 
官方文檔的入門教程已經非常好了,但一方面其在語言方面(英語,在一些國內開發者的貢獻下現在也有了非官方的中文翻譯版本)會對國內的一些開發者產生一定的困擾,另一方面它教我們一步步開發一個簡單的投票應用,我感覺這稍稍會有一點枯燥和不實用。所以我決定編寫這一套教程,帶領想要學習 django 開發的朋友一步步開發一個個人博客,旨在順便代替 django 官方文檔中的入門教程,讓開發的過程更加有趣一點,讓開發出來的東西更加實用一點。這個博客已經具備個人博客該有的基本功能,我們可以把代碼部署到生產伺服器上開始使用。

誰適合這個教程?

這個教程的目的是一步步地帶著大家使用 django 開發一個博客。我假設你以前從未接觸過 django 但想成為一名 django 開發者,或者你略微了解過 django 但對如何使用 django 進行開發依然有一些困惑,或者是從其它的 Web 編程框架轉過來的開發者。同時我假設你已經具備以下一些基本條件:

了解最基本的 Python 語法,或者你從未學習過 Python 但是有學習其他程式語言的經歷。

了解最基本的 HTML,如果你完全不知道 HTML是個什麼東西,建議花費 2-3 天時間學習這個不錯的 HTML 教程。

(最好具備但不是必須的)HTTP 相關的基本概念,如果你目前完全沒有概念也沒關係,我會在教程中做適當講解,但那時如果你依然不懂,建議花費幾天時間學習其基本概念。 
總之,django 博客教程完全面向新人,教程將帶你一步步地(Step By Step)使用 django 開發一個博客,教程和官方文檔的入門教程一樣,涵蓋了 django 開發的大部分核心特性,並且盡我所能地做到對新人友好。同時我也為大家提供了一個交流的社區(下面會介紹),以便在開發中遇到問題能得到及時的幫助。

項目預覽與代碼託管方式

教程最終開發的博客將是這個樣子:django 博客教程演示項目

代碼託管在 GitHub(https://github.com/zmrenwu/django-blog-tutorial),每篇教程的代碼都放在單獨的分支中,分支名看起來像是下面的樣子,先後順序我想應該很容易識別:

Step1_build-development-environment

Step2_create-blog-app

互動方式

教程以 Step by Step 的形式,一步步帶讀者使用 django 開發一個博客。通常情況下,只要你完全依照教程的指導,你將順利地完成博客系統的開發。但儘管如此,由於開發環境的差異,即使你嚴格按照教程裡的指導,依然有可能遇到無法預料的異常。如果你個人無法解決這些問題,你可以通過以下方式尋求幫助,這可以幫你以最快的速度解決問題。

對於簡單的問題,請在我個人博客的評論區留言,每天我都會查看新的留言並且回復相關的問題。

註:由於本教程會被轉載到各大博客平臺,不是每個平臺下的留言我都會看到並回復。因此建議統一到我個人博客下留言,或者採用下面的方式。

(推薦)對於比較複雜的問題,請到社區發帖求助。同樣我也會每天查看新發表的帖子,並且予以回復。在這裡求助的另一個好處是其他人也能看到你的問題,並且給予建議和幫助。社區地址:http://pythonzh.cn/

本教程使用的開發環境

本教程寫作時開發環境的系統平臺為 Windows 10(64 位),Python 版本為 3.5.2 (64 位),django 版本為 1.10.6。建議儘可能地與教程的開發環境保持一致(尤其是 Python 與 django 版本)。建議的 Python 版本為 3.4 或以上,django 版本號必須為 1.10.x。

安裝 Python

Windown 下安裝 Python 非常簡單,去這裡找到 Python 3.5 的下載地址,根據你的系統選擇 32 位或者 64 位的安裝包,下載好後雙擊安裝即可。如果遇到問題,建議嘗試百度相關教程。如果始終無法解決,可以到社區發帖求助。 
安裝完後檢測一下 Python 是否可以正常運行。在命令行輸入 python -v,如果成功輸出了 Python 的版本號,說明已經安裝成功了。如果提示命令未找到,而你又確定已經安裝了 Python,多半是因為沒有把 Python 添加到環境變量。

C:\WINDOWS\system32>python -V

Python 3.5.2

Virtualenv

強烈推薦在 virtualenv(虛擬環境)下進行 django 的開發。什麼是 virtualenv?virtualenv 是一個 Python 工具,使用它可以創建一個獨立的 Python 環境。舉個例子,假設你已經在系統中安裝了 Python,並且在閱讀此教程前你還進行過一些 django 的學習,因此你通過 pip install django 安裝了 django,但不幸的是那時候安裝的 django 還是 1.8 版本。現在我們教程使用的是最新版的 django 1.10.6,你肯定不願意刪除掉舊版的 django 1.8,因為那可能導致你以前的那個項目無法運行了。我既想讓原本項目在 django 1.8 環境下運行,又想再安裝 django 1.10.6 開啟一個新項目,怎麼辦呢?使用 virtualenv 就能解決這個問題。它幫我們從系統的 Python 中克隆一個全新的環境出來,這個環境獨立於原來的 Python 環境,我們可以在這個新的運行環境下安裝 django 1.10.6,並且在這個新環境下運行我們的新項目。virtualenv 的使用非常簡單,下面看看如何使用。

首先安裝它,打開命令行工具,輸入:

C:\WINDOWS\system32>pip install virtualenv

安裝成功後創建虛擬環境,指定一個你喜歡的目錄,virtualenv 會把這個新的虛擬環境裝到你指定目錄下,例如我把它裝到 C:\Users\yangxg\Envs 目錄下,我把虛擬環境命名為 blogproject_env(也可以取任何你喜歡的名字),在命令欄運行如下命令:

C:\WINDOWS\system32>virtualenv C:\Users\yangxg\Envs\blogproject_env

新環境已經創建好了,我們需要進入這個環境,運行 blogproject_env\Scripts 目錄下的 activate 程序激活它:

C:\WINDOWS\system32>C:\Users\yangxg\Envs\blogproject_env\Scripts\activate

(blogproject_env) C:\WINDOWS\system32>

此時看到命令提示符前面多了一個 (blogproject_env),說明我們已經成功進入了虛擬環境,接下來就可以開始安裝 django 了。

安裝 django

(blogproject_env) C:\WINDOWS\system32>pip install django==1.10.6

我們用 django==1.10.6 來安裝指定的 django 版本以保證和教程的版本一致,避免不必要的麻煩。如果直接 pip install django 的話有可能安裝最新的 django 版本,而不是 1.10.6。

注意命名提示符前的 (blogproject_env) 確保你始終處在虛擬環境中,如果你不小心退出了虛擬環境,先按上面的步驟重新進入再安裝 django。

順便測試一下安裝是否成功,現在命令行輸入 python 以打開 Python 自帶的命令欄,然後輸入import django,如果沒有報錯就說明 django 安裝成功,最後通過 print(django.get_version())列印出 django 的版本號,確保安裝了正確版本的 django :

(blogproject_env) C:\WINDOWS\system32>python

Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>> import django

>>> print(django.get_version())

1.10.6

>>>

版權聲明

本作品採用知識共享署名-非商業性使用-禁止演繹 3.0 中國大陸許可協議進行許可。

Python 中 文 社 區

Python中文開發者的精神家園

合作、投稿請聯繫微信:

pythonpost

本文為作者原創作品,未經作者授權同意禁止轉載

點擊閱讀原文可搜索歷史文章

相關焦點

  • Python利用Django 構建Rest Api: 快速入門教程
    前言在本篇中,我們將為大家介紹如何基於Python構建一個以Django Rest框架為特徵的博客應用程式API服務,並且該API服務支持CRUD (Create-Read-Update-Delete)功能。PS: API(應用程式編程接口)為開發人員提供了與應用程式資料庫交互的接口。2. Django項目配置首先在本地為我們的代碼創建一個新的目錄。
  • 一個完整的Django入門指南
    前言今天我將開始一個關於 Django 基礎知識的全新系列教程,這是一個開始學習 Django 的完整入門指南,教程材料一共會被分為七個部分。我們將從安裝、開發環境的準備,模型,視圖,模板,URL到更高級的主題(如遷移,測試和部署)中詳細探討所有基本概念。
  • 使用 Docker 讓部署 Django 項目更加輕鬆
    這些痛苦包括:要去伺服器上執行 n 條命令本地環境和伺服器環境不一致,明明本地運行沒問題,一部署伺服器上就掛掛,死活啟動不起來如果上面的情況發生了,又要去伺服器上執行 n 條命令以解決問題本地更新了代碼,部署上線後,上述歷史又重演一遍,想死的心都有了那麼我們有沒有辦法,讓本地開發環境和線上環境保持一致?
  • Django第十八課
    本部分內容參考B站UP再敲一行代碼的Django2教程[1]第十八課-熱門博客閱讀及緩存提速在上節課中,我們討論了閱讀計數統計和顯示的問題,我們可以對這個進一步挖掘,統計當日熱門閱讀博客、昨日熱門閱讀博客以及最近七天熱門閱讀博客。
  • python測試開發django-1.開始hello world!
    django框架有豐富的文檔和學習資料,也是非常成熟的web開發框架,想學python開發的小夥伴,從django入手是一個不錯的選擇。本篇寫一個簡單的「hello world!」頁面,開始django之旅~環境準備:Python 3.6.0django 2.1.2pycharm環境準備django的環境安裝非常簡單,只需用pip安裝一個django庫就可以了,編輯器選擇pycharmpip install django查看版本號:pip show djangoC:\Users\dell
  • Django第十七課
    本部分內容參考B站UP再敲一行代碼的Django2教程[1]第十六課 博客閱讀計數統計和顯示在上一節課中我們學習了如何對博客閱讀量進行統計,還有一個問題沒有解決:沒有具體到某一天的統計數據(雖然訪問量很低,但是可以通過這個需求了解如何進行統計)。
  • 如何創建Django應用並連接資料庫
    在本文中,你將學習如何建立與MySQL資料庫連接的網站項目,使用django-admin創建此項目,並安裝和創建MySQL資料庫,然後將項目與資料庫連接。先決條件在學習本文內容之前,應該先完成以下步驟:在Ubuntu 16.04伺服器上安裝Django。
  • python測試開發django-56.模板渲染markdown語法+代碼高亮
    前言上一篇已經實現在xadmin後臺編輯markdown語法的文檔,編輯完成之後發布博客,在前端html能把先使用pip按照markdown模塊,用於轉換markdown為htmlpip install markdown在後臺頁面編輯的markdown內容,markdown裡面插入代碼一般有兩種方式:一種是把代碼全部選中,然後縮進(四個空格)第二種是代碼部分用三個```包起來,後面可以跟著對應語言python,如下(這裡不太好展示,前面的\要去掉)# django
  • 「Web全棧教程」手把手教你用 Vue.js + Django 搭建在線教育平臺
    不少高校改為線上授課,許多高校計算機學院的上機實驗也藉助了線上教育平臺提供的環境。比如,「實驗樓」就在年初接到了國內部分高校的計算機開課請求,讓學校們可以使用實驗樓的在線環境進行教學工作。那麼, 實驗樓」這樣的在線編程教育網站是如何搭建的呢?今天給大家分享一個 Web 全棧項目: 以「實驗樓」為例,用 Vue.js 和 Django 搭建一個在線教育網站!
  • Django第二十八課
    本部分內容參考B站UP再敲一行代碼的Django2教程[1]⚠️:多圖預警第二十八課 自定義用戶模型在上節課登錄功能中,我們提到了個人資料。這節課我們繼續講述關於個人資料中的用戶自定義內容。這裡大概有兩種方法:一是繼承django的用戶模型;二是使用新的模型拓展關聯User(🌟🌟🌟🌟🌟)。1. 繼承Django的用戶模型我們之前使用的User是在django.contrib.auth.models中引用的,我們可以查看這部分源碼,分析這個User是如何創建的。
  • ——Django環境配置
    如何從零開始,配置好Django開發環境呢?本文帶你一步步無痛上手。(由於微信公眾號外部連結的限制,文中的部分連結可能無法正確打開。如有需要,請點擊文末的「閱讀原文」按鈕,訪問可以正常顯示外鏈的版本。)概念最近有個詞兒很流行,叫做「全棧」(full stack)。各大IT培訓機構幾乎都在宣傳這一概念。
  • Django REST Framework教程(6): 認證詳解及如何使用Token認證
    在前篇的開發博客API案例中,我們詳細介紹了如何在DRF中使用權限以及如何自定義權限實現了只有經過身份驗證的用戶可以創建文章並且只有文章的所有者可以編輯和刪除文章
  • Python Django之路與您同行
    最近折騰了一個自己的個人博客:87testing.com,這樣可以記錄自己的學習、工作和生活。
  • Django ORM 簡介
    和任何一個關係型資料庫一樣,我們需要去定義一堆表和它們的關係(即,它們相互之間聯繫起來的方式)。讓我們使用我們熟悉的東西。比如說,我們需要去建模一個有博客文章和作者的博客。每個作者有一個名字。一位作者可以有很多的博客文章。一篇博客文章可以有很多的作者、標題、內容和發布日期。在 Django 村裡,這個文章和作者的概念可以被稱為博客應用。
  • Django實戰教程: 開發企業級應用智能文檔管理系統smartdoc(1)
    本教程一共分三部分,第1部分搭基礎框架(標黃部分),第2部分講解用戶權限控制,第3部分建立文檔搜索和Ajax搜索功能。本文是第一部分。項目開發環境Django 2.1 + Python 3.5 + SQLite。因為用戶上傳的文件還包括圖片,所以請確保你已通過pip安裝python的pillow圖片庫。
  • Django基礎(29): select_related和prefetch_related的用法與區別
    在前面教程中小編我已經介紹了Django的Queryset特性及高級使用技巧以及Queryset的aggregate和annotate方法。
  • Python Django初學者教程 - 智能甄選
    Python Django教程 - 什麼是Django?Django是一個高級Python框架。它是一個免費的開源框架,用Python編寫,遵循模型 - 視圖 - 模板架構模式。我們可以使用它來更快,更輕鬆地開發優質的Web應用程式。由於Web開發需要一組類似的組件,因此您可以使用框架。這樣,您就不必重新發明輪子。這些任務包括身份驗證,表單,上載文件,管理面板等。
  • 教程| 如何搭建個人博客網站
    今天為大家帶來一篇教程《如何搭建個人博客網站》,喜歡的同學可以研究一下。系統配置CentOs6.8系統可在管理控制臺查看配置購買的伺服器PS:騰訊雲學生活動10元/月(伺服器加存儲加域名)2、網絡環境部署
  • Python安裝中對配置環境變量實際操作的方法
    Python安裝中對配置環境變量實際操作的方法 本文主要是對Python安裝到指定路徑的相關實際應用方案的介紹以及相關代碼的示例,以及關於在安裝路徑中如何到path變量中,的相關內容的介紹, 作者
  • SolidWorks2020中文破解版下載與安裝教程
    7、自行設置軟體語言及安裝位置(點擊更改,選擇安裝的產品和語言,以及更改安裝路徑,推薦安裝到D盤),勾選我接受solidworks條款8、在許可證服務配置界面,埠@伺服器填寫25734@localhost9、安裝時間會稍微長一點,請耐心等待10、安裝完以後,點擊關閉,先不要運行軟體,將_solidsquad_文件夾內的補丁文件夾「program