Django入門指南-第1部分(環境搭建)

前言

今天我將開始一個關於 Django 基礎知識的全新系列教程。這是一個開始學習 Django 的完整入門指南。教程材料一共會被分爲七個部分。咱們將從安裝,開發環境的準備,模型,視圖,模板,URL到更高級的主題(如遷移,測試和部署)中詳細探討全部基本概念。html

我想作一些不同的事情。一個容易學習,內容豐富且不失趣味的教程。個人想法是在文章中穿插一些漫畫的方式來演示說明相應的概念和場景。我但願你們可以享受這種閱讀!python

可是在咱們開始以前...git

當年我在一所大學擔任代課教授時,我曾經在計算機科學專業給新來的學生講授網絡開發學科。那時我老是會用下面這個孔夫子的名言開始新的課程:github

(譯者注:不肯定是孔子講的,但這句話早在中國古代就有所提到,出自荀子《儒效篇》「不聞不若聞之,聞之不若見之,見之不若知之,知之不若行之;學至於行之而止矣」)web

因此,請動起手來!不要只是閱讀教程。咱們一塊兒來練習!經過實踐和練習你會收穫的更多。數據庫


爲何要學習Django?

Django是一個用python編寫的Web框架。Web框架是一種軟件,基於web框架能夠開發動態網站,各類應用程序以及服務。它提供了一系列工具和功能,能夠解決許多與Web開發相關的常見問題,好比:安全功能,數據庫訪問,會話,模板處理,URL路由,國際化,本地化,等等。django

使用諸如 Django 之類的網絡框架,使咱們可以以標準化的方式快速開發安全可靠的Web應用程序,而無需從新發明輪子。vim

那麼,Django有什麼特別之處呢?對於初學者來講,它是一個Python Web框架,這意味着你能夠受益於各類各樣的開源庫包。python軟件包資料庫(pypi)擁有超過11.6萬個軟件包(2017年9月6日的數據)。若是當你想要解決一個特定的問題的時候,可能有人已經爲它實現了一個庫來供你使用。緩存

Django是用python編寫的最流行的web框架之一。它絕對是最完整的,提供了各類各樣的開箱即用的功能,好比用於開發和測試的獨立Web服務器,緩存,中間件系統,ORM,模板引擎,表單處理,基於Python單元測試的工具接口。Django還自帶內部電池,提供內置應用程序,好比一個認證系統,一個可用於 CRUD(增刪改查) 操做而且自動生成頁面的後臺管理界面,生成訂閱文檔(RSS/Atom),站點地圖等。甚至在django中內建了一個地理信息系統(GIS)框架。安全

Django的開發獲得了Django軟件基金會的支持,而且由jetbrains和instagram等公司贊助。Django如今已經存在了至關長的一段時間了。到如今爲止,活躍的項目開發時間已經超過12年,這也證實了它是一個成熟,可靠和安全的網絡框架。

誰在使用Django?

知道誰在使用Django是很好的,同時也想想你能夠用它來作些什麼。在使用Django的大型網站有:InstagramDisqusMozillaBitbucketLast.fm國家地理

想知道更多的示例,你能夠到Django Sites數據庫中查看,它提供超過五千個Django驅動的網站列表。

順便說一下,去年在Django 2016年發佈會上,Django核心開發人員,Instagram員工 carl meyer,就Instagram如何大規模使用Django以及它如何支持他們的用戶增加作過一次分享。這是個一小時的演講,若是你有興趣學習瞭解更多的話,這是一次頗有趣的演講。


安裝

咱們須要作的第一件事是在咱們的電腦上安裝一些程序,以便可以開始使用django。基本的設置包括安裝PythonVirtualenvDjango

使用虛擬環境不是強制性的,可是我仍是強烈建議你們這樣作。若是你是一個初學者,那麼最好造成一個良好的開端。

當你在用 Django 開發一個網站或者一個Web項目的時候,不得不安裝外部庫以支持開發是很是常見的事情。使用虛擬環境,你開發的每一個項目都會有其獨立的環境。這樣的話,包之間的依賴關係不會發生衝突。同時也使得你能在不一樣Django版本上運行的本地機器的項目。

在後面你會看到使用它是很是簡單的!

安裝 Python 3.6.2

咱們想要作的第一件事是安裝最新版的Python,那就是Python 3.6.2。至少是在我寫這篇教程的時候。若是有更新的版本,請使用新版。接下來的步驟也應該保持大體相同的作法。

咱們將使用Python 3,由於大部分主要的Python庫已經被移植到python 3,而且下一個主要的django版本(2.x)也將再也不支持python 2。因此Python 3是正確的選擇。

最好的方法是經過Homebrew安裝。 若是你的Mac尚未安裝Homebrew的話,在終端中執行下面的命令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
複製代碼

若是你沒有安裝命令行工具(Command Line Tools),Homebrew的安裝可能須要稍長一點的時間。但它會幫助你處理好一切,因此不用擔憂。只須要坐下來等到安裝完成便可。

當你看到如下消息時,就表明安裝完成了:

==> Installation successful!

==> Homebrew has enabled anonymous aggregate user behaviour analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics.html

==> Next steps:
- Run `brew help` to get started
- Further documentation:
    https://docs.brew.sh
複製代碼

執行下面的命令來安裝Python 3:

brew install python3
複製代碼

因爲macOS本來已經安裝了python 2,因此在安裝python 3以後,你將能夠同時使用這兩個版本。

須要運行Python 2的話,在終端中經過命令 python 啓動。若是想運行Python 3,則使用python3 來啓動。

咱們能夠在終端中測試一下:

python3 --version
Python 3.6.2
複製代碼

很棒,python已經啓動並正在運行。下一步:虛擬環境!

安裝 Virtualenv

接下來這一步,咱們將經過pip(一個管理和安裝Python包的工具)來安裝Virtualenv

請注意,Homebrew已經爲你安裝好了pip,在python 3.6.2下的名稱爲 pip3

在終端中,執行下面的命令:

sudo pip3 install virtualenv
複製代碼

到目前爲止,咱們執行的安裝都是在操做系統環境下運行的。從如今開始,咱們安裝的全部東西,包括django自己,都將安裝在虛擬環境中。

這樣想一下:對於你開始的每一個Django項目,你首先會爲它建立一個虛擬環境。這就像每一個Django項目都有一個沙盒。因此你隨意運行,安裝軟件包,卸載軟件包而不會破壞任何東西。

我習慣在電腦上建立一個名爲Development的文件夾。而後,我用它來組織我全部的項目和網站。但你也能夠按照接下來的步驟建立適合你本身的目錄。

一般,我首先在Development文件夾中建立一個項目名稱的新文件夾。既然這將是咱們第一個項目,咱們不必挑選一個獨特的名字。如今,咱們能夠稱之爲myproject

mkdir myproject
cd myproject
複製代碼

這個文件夾是級別較高的目錄,將存儲與咱們的Django項目相關的全部文件和東西,包括它的虛擬環境。

因此讓咱們開始建立咱們的第一個虛擬環境並安裝django。

myproject文件夾中:

virtualenv venv -p python3
複製代碼

這樣咱們的虛擬環境就建立好了。在開始使用它以前,咱們須要先激活一下環境:

source venv/bin/activate
複製代碼

若是你在命令行前面看到 (venv),就表明激活成功了,就像這樣:

讓咱們試着瞭解一下這裏發生了什麼。咱們建立了一個名爲venv的特殊文件夾。該文件夾內包含了一個python的副本。在咱們激活了venv環境以後,當咱們運行Python命令時,它將使用咱們存儲在venv裏面的本地副本,而不是咱們以前在操做系統中安裝的那個。

另外一個重要的事情是,pip程序也已經安裝好了,當咱們使用它來安裝Python的軟件包(好比Django)時,它將被安裝在venv環境中。

請注意,當咱們啓用venv時,咱們將使用命令python(而不是python3)來調用Python 3.6.2,而且僅使用pip(而不是pip3)來安裝軟件包。

順便說一句,要想退出venv環境,運行下面的命令:

deactivate
複製代碼

可是,咱們如今先保持激活狀態來進行下一步。

安裝 Django 1.11.4

很簡單,如今咱們已經啓動了venv,運行如下命令來安裝django:

pip install django==1.11.4

# 譯註:目前django已經升級到2.x版本,這裏爲了跟後續教程內容保持一直,因此必須指定版本號進行安裝
# 除非你有能力 debug,不然不建議你使用django 2.x
複製代碼

如今一切就緒!

本文是公衆號「Python之禪」發起的《Django入門指南》翻譯計劃,後續章節可關注公衆號獲取

譯者:vimiix

原文地址:simpleisbetterthancomplex.com/series/2017…

相關文章
相關標籤/搜索