本教程使用的開發環境
本教程寫作時開發環境的系統平臺為 Windows 10 (64 位),Python 版本為 3.5.2 (64 位),Django 版本為 1.10.6。
建議儘可能地與教程的開發環境保持一致(尤其是 Python 與 Django 版本),避免不必要的麻煩。推薦的 Python 版本為 Python 3.4 或以上,Django 版本號必須為 Django 1.10.x。
注意:本教程將盡量保證相容 Python 2,但不會在 Python 2 環境下做測試。如果你因為某種原因必須使用 Python 2,你可以在 Python 2 環境下嘗試執行教程裡的程式碼,應該能夠順利執行。
安裝 Python
Windows 下安裝 Python 非常簡單,去 Python 官方網站找到 Python 3 的下載地址,根據你的系統選擇 32 位或者 64 位的安裝包,下載好後雙擊安裝即可。
安裝完後檢測 Python 是否可以正常執行。在命令列輸入 python -v
,如果輸出了 Python 的版本號,說明 Python 已安裝成功。
C:WINDOWSsystem32>python -V
Python 3.5.2複製程式碼
如果提示命令未找到,而你又確定已經安裝了 Python,多半是因為沒有把 Python 新增到環境變數。可搜尋如何把 Python 新增到環境變數的相關教程,將安裝的Python 新增到環境變數即可。
使用虛擬環境 Virtualenv
強烈推薦在 Virtualenv 下進行 Django 的開發。Virtualenv 是一個 Python 工具,使用它可以建立一個獨立的 Python 環境。
為什麼要使用 Virtualenv 呢?舉個例子,假設你已經在系統中安裝了 Python,並且在閱讀此教程前你已經進行過一些 Django 的學習,但那時候安裝的 Django 還是 1.8 版本。我們教程使用的是最新版的 Django 1.10.6 版本,你可能不願意刪除掉舊版的 Django 1.8,因為那可能導致你以前的專案無法執行。既想讓原本專案在 Django 1.8 環境下執行,又想再安裝 Django 1.10.6 來開啟本教程的專案,怎麼辦呢?使用 Virtualenv 就能夠完美解決這個問題。
Virtualenv 幫我們從系統的 Python 環境中克隆一個全新的 Python 環境出來,這個環境獨立於原來的 Python 環境。我們可以在這個新克隆的環境下安裝 Django 1.10.6,並且在這個新環境下執行我們的新專案。
Virtualenv 的使用非常簡單,首先安裝 Virtualenv,開啟命令列工具,輸入 pip install virtualenv
命令即可安裝 Virtualenv。
C:WINDOWSsystem32>pip install virtualenv複製程式碼
安裝成功後就可以開始建立虛擬環境,指定一個你喜歡的目錄,Virtualenv 會把這個新的虛擬環境裝到你指定目錄下。例如我把它裝到 C:UsersyangxgEnvs 目錄下,並將虛擬環境命名為 blogproject_env(也可以取任何你喜歡的名字)。在命令欄執行如下命令:
C:WINDOWSsystem32>virtualenv C:UsersyangxgEnvslogproject_env複製程式碼
虛擬環境已經建立好了,我們需要啟用這個環境,執行 blogproject_envScripts 目錄下的 activate 程式啟用它:
C:WINDOWSsystem32>C:UsersyangxgEnvslogproject_envScriptsactivate
(blogproject_env) C:WINDOWSsystem32>複製程式碼
注意 Linux 下沒有 Scripts 這個目錄,取而代之的是 bin/ 目錄。且啟用命令為:
$ source blogproject_env/bin/activate複製程式碼
可以看到命令提示符前面多了 (blogproject_env),說明我們已經成功啟用了虛擬環境,接下來就可以開始安裝 Django 了。
安裝 Django
Django 的官方文件對 如何安裝 Django 給出了詳細且明確的指導,不過我們目前用不上這些,只需使用 pip 命令就可以解決問題。
(blogproject_env) C:WINDOWSsystem32>pip install django==1.10.6複製程式碼
我們用 django==1.10.6 來安裝指定的 Django 版本以保證和教程中的一致。如果直接 pip install django
的話有可能安裝最新的 Django 發行版本,而不是 Django 1.10.6。
注意命名提示符前的 (blogproject_env) 以確保你始終處在虛擬環境中,如果不小心退出了虛擬環境,先按上面的步驟重新進入再安裝 Django。
測試一下安裝是否成功,先在命令列輸入 python
以開啟 Python 自帶的命令欄,然後輸入 import django
,如果沒有報錯就說明 Django 安裝成功。通過執行 print(django.get_version())
列印出 Django 的版本號,確保安裝了正確版本的 Django。
(blogproject_env) C:WINDOWSsystem32>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
>>>複製程式碼
建立 Django 工程
萬事已經具備了,讓我們來建立 Django 專案工程。
Django 工程(Project)是我們專案程式碼的容器,例如我們部落格專案中所有的程式碼(包括 Django 為我們自動生成的以及我們自己寫的)都包含在這個工程裡。其實說通俗一點就是用一個資料夾把一系列 Python 程式碼檔案和 Django 配置檔案包裹起來,這個資料夾就可以看做一個 Django 工程。我們不必親自動手新建這個資料夾和程式碼檔案,Django 的內建命令已經幫我們做了這些事情。例如我把部落格工程的程式碼放在 C:UsersyangxgWorkspace ,工程名我把它叫做 blogproject 。
首先在命令列進入到 C:UsersyangxgWorkspace 這個目錄(如果你還停留在 Python 的命令欄裡,先多按幾次 Ctrl + c 鍵跳出來):
(blogproject_env) C:WINDOWSsystem32>cd C:UsersyangxgWorkspace複製程式碼
然後執行如下命令建立工程:
(blogproject_env) C:UsersyangxgWorkspace>django-admin startproject blogproject複製程式碼
再次申明一定要在虛擬環境下執行這些命令,虛擬環境的標誌就是命令提示符前有 (blogproject_env) 這樣的標記。以後幾乎所有和 Django 有關的命令都是在虛擬環境下執行,因此在執行前一定確保先開啟了虛擬環境。
進入工程所在目錄 C:UsersyangxgWorkspace(你可能設定在其它路徑),會發現多了一個 blogproject 的目錄,其內部的檔案結構如下:
blogproject
manage.py
blogproject
__init__.py
settings.py
urls.py
wsgi.py複製程式碼
最頂層的 blogproject 目錄是我們剛剛指定的工程目錄。blogproject 目錄下面有一個 manage.py 檔案,manage 是管理的意思,顧名思義 manage.py 就是 Django 為我們生成的管理這個專案的 Python 指令碼檔案,以後用到時會再次介紹。與 manage.py 同級的還有一個 blogproject 的目錄,這裡面存放了一些 Django 的配置檔案,例如 settings.py、urls.py 等等,以後用到時會詳細介紹。
Hello Django
網站需要執行在一個 Web 伺服器上,Django 已經為我們提供了一個用於本地開發的 Web 伺服器。在命令列工具裡進入到 manage.py 所在目錄,即最外層的 blogproject 目錄下。執行 python manage.py runserver
命令就可以在本機上開啟一個 Web 伺服器:
(blogproject_env) C:UsersyangxgWorkspace>cd C:UsersyangxgWorkspacelogproject
(blogproject_env) C:UsersyangxgWorkspacelogproject>python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run `python manage.py migrate` to apply them.
December 21, 2016 - 20:23:07
Django version 1.10.4, using settings `blogproject.settings`
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.複製程式碼
看到這樣的資訊表明我們的伺服器開啟成功。
在瀏覽器輸入 http://127.0.0.1:8000/ ,看到如下的頁面提示資訊:
It worked! Django 工作了!
注意:如果在瀏覽器輸入 http://127.0.0.1:8000/ 後顯示無法訪問該網站,請檢查是不是瀏覽器代理的問題。比如開啟了某些 VPN 代理服務等,將它們全部關閉即可。
這是 manage.py 的第一個用法,執行它的 runserver
命令開啟本地開發伺服器,以後我們還會遇到更多的命令。
命令欄工具下按 Ctrl + c 可以退出開發伺服器(按一次沒用的話連續多按幾次)。重新開啟則再次執行 python manage.py runserver
。
Django 預設的語言是英語,所以顯示給我們的歡迎頁面是英文的。我們在 Django 的配置檔案裡稍作修改,讓它支援中文。用任何一個文字編輯器開啟 settings.py 檔案,找到如下的兩行程式碼:
blogproject/blogproject/settings.py
## 其它配置程式碼...
LANGUAGE_CODE = `en-us`
TIME_ZONE = `UTC`
## 其它配置程式碼...複製程式碼
把 LANGUAGE_CODE
的值改為 zh-hans
,TIME_ZONE
的值改為 Asia/Shanghai
:
blogproject/blogproject/settings.py
## 其它配置程式碼...
# 把英文改為中文
LANGUAGE_CODE = `zh-hans`
# 把國際時區改為中國時區
TIME_ZONE = `Asia/Shanghai`
## 其它配置程式碼...複製程式碼
儲存更改後關閉 settings.py 檔案。
再次執行開發伺服器,並在瀏覽器開啟 http://127.0.0.1:8000/,可以看到 Django 已經支援中文了。
一切準備就緒,開始進入我們的 Django 部落格開發之旅吧!
總結
本章節的程式碼位於:Step1: build development environment。
如果遇到問題,請通過下面的方式尋求幫助。
- 在 搭建開發環境 – 追夢人物的部落格 的評論區留言。
- 將問題的詳細描述通過郵件傳送到 djangostudyteam@163.com,一般會在 24 小時內回覆。