2. 搭建開發(fā)環(huán)境

本教程內(nèi)容已過時(shí),更新版教程請?jiān)L問: Django 博客開發(fā)入門教程。

這是 Django 博客教程的第 2 篇,在閱讀此篇教程以前,請確保你已閱讀 Django 博客教程的第 1 篇:
1. Django 博客教程:前言

本教程使用的開發(fā)環(huán)境

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

注:本教程將盡量保證兼容 Python 2,但不會在 Python 2 環(huán)境下做測試。如果你因?yàn)槟撤N原因必須使用 Python 2,你可以在你的 Python 2 環(huán)境下嘗試運(yùn)行教程里的代碼,應(yīng)該能夠順利運(yùn)行,因?yàn)?django 本身支持 Python 2 和 Python 3,不過 django 官方建議 Python 2 的版本號最好是 2.7.x。如果你在 Python 2 下遇到問題,歡迎到社區(qū)的 [django 博客教程][1] 的分類下發(fā)帖報(bào)告這個(gè)問題。
[1]: http://pythonzh.cn/

安裝 Python

Windown 下安裝 Python 非常簡單,去[這里][2]找到 Python 3.5 的下載地址,根據(jù)你的系統(tǒng)選擇 32 位或者 64 位的安裝包,下載好后雙擊安裝即可。如果遇到問題,建議嘗試百度相關(guān)教程。如果始終無法解決,可以到[社區(qū)][1]發(fā)帖求助。
[2]: https://www.python.org/downloads/release/python-352/
安裝完后檢測一下 Python 是否可以正常運(yùn)行。在命令行輸入 python -v,如果成功輸出了 Python 的版本號,說明已經(jīng)安裝成功了。如果提示命令未找到,而你又確定已經(jīng)安裝了 Python,多半是因?yàn)闆]有把 Python 添加到環(huán)境變量。

C:\WINDOWS\system32>python -V
Python 3.5.2

Virtualenv

強(qiáng)烈推薦在 virtualenv(虛擬環(huán)境)下進(jìn)行 django 的開發(fā)。什么是 virtualenv?virtualenv 是一個(gè) Python 工具,使用它可以創(chuàng)建一個(gè)獨(dú)立的 Python 環(huán)境。舉個(gè)例子,假設(shè)你已經(jīng)在系統(tǒng)中安裝了 Python,并且在閱讀此教程前你還進(jìn)行過一些 django 的學(xué)習(xí),因此你通過 pip install django 安裝了 django,但不幸的是那時(shí)候安裝的 django 還是 1.8 版本。現(xiàn)在我們教程使用的是最新版的 django 1.10.6,你肯定不愿意刪除掉舊版的 django 1.8,因?yàn)槟强赡軐?dǎo)致你以前的那個(gè)項(xiàng)目無法運(yùn)行了。我既想讓原本項(xiàng)目在 django 1.8 環(huán)境下運(yùn)行,又想再安裝 django 1.10.6 開啟一個(gè)新項(xiàng)目,怎么辦呢?使用 virtualenv 就能解決這個(gè)問題。它幫我們從系統(tǒng)的 Python 中克隆一個(gè)全新的環(huán)境出來,這個(gè)環(huán)境獨(dú)立于原來的 Python 環(huán)境,我們可以在這個(gè)新的運(yùn)行環(huán)境下安裝 django 1.10.6,并且在這個(gè)新環(huán)境下運(yùn)行我們的新項(xiàng)目。virtualenv 的使用非常簡單,下面看看如何使用。

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

C:\WINDOWS\system32>pip install virtualenv

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

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

新環(huán)境已經(jīng)創(chuàng)建好了,我們需要進(jìn)入這個(gè)環(huán)境,運(yùn)行 blogproject_env\Scripts 目錄下的 activate 程序激活它:

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

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

安裝 django

django 的官方文檔對如何[安裝 django][3] 給出了詳細(xì)且明確的指導(dǎo),但我們目前用不上這些,只需簡單地 pip install django==1.10.6 就可以解決問題了。
[3]: https://docs.djangoproject.com/en/1.10/intro/install/#install-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) 確保你始終處在虛擬環(huán)境中,如果你不小心退出了虛擬環(huán)境,先按上面的步驟重新進(jìn)入再安裝 django。

順便測試一下安裝是否成功,現(xiàn)在命令行輸入 python 以打開 Python 自帶的命令欄,然后輸入 import django,如果沒有報(bào)錯(cuò)就說明 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
>>>

建立 django 工程

萬事已經(jīng)具備了,讓我們來建立我們的 django 工程。 django 工程(project)是我們項(xiàng)目代碼的容器。例如我們博客項(xiàng)目中所有的代碼(包括 django 為我們自動生成的以及我們自己寫的)都包含在這個(gè)工程里,說白了就是用一個(gè)文件夾包起來的一系列 Python 代碼文件和 django 配置文件。但我們不必去親自動手新建這個(gè)文件夾和代碼文件,django 的命令幫我們做了這些事情。例如我把博客項(xiàng)目工程的代碼放在 C:\Users\yangxg\Workspace ,工程名我把它叫做 blogproject ,那么首先在命令行工具進(jìn)入 C:\Users\yangxg\Workspace 這個(gè)目錄(如果你還停留在 Python 的命令欄里,先多按幾次 ctrl + c 跳出來):

(blogproject_env) C:\WINDOWS\system32>cd C:\Users\yangxg\Workspace

然后運(yùn)行如下命令:

(blogproject_env) C:\Users\yangxg\Workspace>django-admin startproject blogproject

再次申明一定要在虛擬環(huán)境下運(yùn)行這些命令,虛擬環(huán)境的標(biāo)志就是命令提示符前有 (blogproject_env) 這樣的標(biāo)記。以后所有的和 django 有關(guān)的命令都是在虛擬環(huán)境下運(yùn)行,因此在運(yùn)行前一定確保先開啟了虛擬環(huán)境。

進(jìn)入工程所在目錄 C:\Users\yangxg\Workspace(你可能設(shè)置在其他路徑),你會發(fā)現(xiàn)多了一個(gè)名為 blogproject 的文件夾,其內(nèi)部文件結(jié)構(gòu)如下:

blogproject /
    manage.py
    blogproject /
        __init__.py
        settings.py
        urls.py
        wsgi.py

最頂層的 blogproject/ 目錄是我們剛剛指定的工程目錄,其下面有一個(gè) manage.py 文件,manage 是管理的意思,顧名思義 manage.py 就是 django 為我們生成的管理我們這個(gè)項(xiàng)目的 Python 腳本文件,以后用到時(shí)會再次介紹。與 manage.py 同級的還有一個(gè)名為 blogproject 的文件夾,這里面存放了一些 django 的配置文件,例如 settings.py 等等,以后用到時(shí)會詳細(xì)介紹。此外,其下面的 __init__.py 指明了這是一個(gè) Python 模塊包。Python 規(guī)定在一個(gè)文件夾里包含 __init__.py 文件來指明這是一個(gè) Python 模塊包,這樣你就可以在別的 Python 代碼中引入它。

Hello django

網(wǎng)站需要運(yùn)行在一個(gè) web 服務(wù)器上,django 已經(jīng)為我們提供了一個(gè)用于本地開發(fā)的 web 服務(wù)器。在命令行工具里進(jìn)入到 manage.py 所在目錄,運(yùn)行下面的命令就可以在本機(jī)上開啟一個(gè) web 服務(wù)器:

(blogproject_env) C:\Users\yangxg\Workspace>cd C:\Users\yangxg\Workspace\blogproject

(blogproject_env) C:\Users\yangxg\Workspace\blogproject>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.

看到這樣的信息表明我們的服務(wù)器開啟成功,在瀏覽器輸入 http://127.0.0.1:8000/ ,看到如下的頁面提示信息:

It worked!

Congratulations on your first Django-powered page.

Of course, you haven't actually done any work yet. Next, start your first app by running python manage.py startapp [app_label].

You're seeing this message because you have DEBUG = True in your Django settings file and you haven't configured any URLs. Get to work!

It worked! django 工作了!一切準(zhǔn)備就緒,開始進(jìn)入我們的 django 博客開發(fā)之旅了!

注:這是 manage.py 的第一個(gè)用法,運(yùn)行它的 runserver 命令開啟本地開發(fā)服務(wù)器,以后還會遇到更多的命令。

命令欄工具下按 Ctrl + c 可以退出開發(fā)服務(wù)器(按一次沒用的話連續(xù)多按幾次)。重新開啟則再次運(yùn)行 python manage.py runserver

另外我們 django 默認(rèn)的語言是英語,所以顯示給我們的歡迎頁面是英文的。我們在 django 的配置文件里稍作修改,讓它支持中文。用任何一個(gè)文本編輯器打開 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' # 把國際時(shí)區(qū)改為中國時(shí)區(qū) 

# 其它配置代碼

再次運(yùn)行開發(fā)服務(wù)器,并在瀏覽器打開 http://127.0.0.1:8000/,可以看到 django 已經(jīng)支持中文了。

(blogproject_env) C:\Users\yangxg\Workspace\blogproject>python manage.py runserver
Performing system checks...

正常工作了!

祝賀你的第一個(gè)由Django驅(qū)動的頁面。

當(dāng)然,您還沒有真正開始工作。接下來,請執(zhí)行 python manage.py startapp [app_label] 來創(chuàng)建您的第一個(gè)應(yīng)用。

您看到此消息是由于Django的配置文件設(shè)置了 DEBUG = True,您還沒有配置任何路由URL。開始工作吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容