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

本教程內(nèi)容已過時镰绎,更新版教程請訪問: Django 博客開發(fā)入門教程泛领。

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

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

本教程寫作時開發(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)境下做測試蚣常。如果你因為某種原因必須使用 Python 2,你可以在你的 Python 2 環(huán)境下嘗試運行教程里的代碼痊银,應該能夠順利運行抵蚊,因為 django 本身支持 Python 2 和 Python 3,不過 django 官方建議 Python 2 的版本號最好是 2.7.x溯革。如果你在 Python 2 下遇到問題贞绳,歡迎到社區(qū)的 [django 博客教程][1] 的分類下發(fā)帖報告這個問題。
[1]: http://pythonzh.cn/

安裝 Python

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

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

Virtualenv

強烈推薦在 virtualenv(虛擬環(huán)境)下進行 django 的開發(fā)抓督。什么是 virtualenv裸违?virtualenv 是一個 Python 工具,使用它可以創(chuàng)建一個獨立的 Python 環(huán)境本昏。舉個例子供汛,假設你已經(jīng)在系統(tǒng)中安裝了 Python,并且在閱讀此教程前你還進行過一些 django 的學習,因此你通過 pip install django 安裝了 django怔昨,但不幸的是那時候安裝的 django 還是 1.8 版本∪妇茫現(xiàn)在我們教程使用的是最新版的 django 1.10.6,你肯定不愿意刪除掉舊版的 django 1.8趁舀,因為那可能導致你以前的那個項目無法運行了赖捌。我既想讓原本項目在 django 1.8 環(huán)境下運行,又想再安裝 django 1.10.6 開啟一個新項目矮烹,怎么辦呢越庇?使用 virtualenv 就能解決這個問題。它幫我們從系統(tǒng)的 Python 中克隆一個全新的環(huán)境出來奉狈,這個環(huán)境獨立于原來的 Python 環(huán)境卤唉,我們可以在這個新的運行環(huán)境下安裝 django 1.10.6,并且在這個新環(huán)境下運行我們的新項目仁期。virtualenv 的使用非常簡單桑驱,下面看看如何使用。

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

C:\WINDOWS\system32>pip install virtualenv

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

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

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

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

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

安裝 django

django 的官方文檔對如何[安裝 django][3] 給出了詳細且明確的指導墨微,但我們目前用不上這些,只需簡單地 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)境牺蹄,先按上面的步驟重新進入再安裝 django忘伞。

順便測試一下安裝是否成功,現(xiàn)在命令行輸入 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
>>>

建立 django 工程

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

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

然后運行如下命令:

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

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

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

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

最頂層的 blogproject/ 目錄是我們剛剛指定的工程目錄倒信,其下面有一個 manage.py 文件,manage 是管理的意思泳梆,顧名思義 manage.py 就是 django 為我們生成的管理我們這個項目的 Python 腳本文件鳖悠,以后用到時會再次介紹。與 manage.py 同級的還有一個名為 blogproject 的文件夾优妙,這里面存放了一些 django 的配置文件乘综,例如 settings.py 等等,以后用到時會詳細介紹套硼。此外卡辰,其下面的 __init__.py 指明了這是一個 Python 模塊包。Python 規(guī)定在一個文件夾里包含 __init__.py 文件來指明這是一個 Python 模塊包邪意,這樣你就可以在別的 Python 代碼中引入它九妈。

Hello django

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

(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.

看到這樣的信息表明我們的服務器開啟成功,在瀏覽器輸入 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 工作了晶疼!一切準備就緒酒贬,開始進入我們的 django 博客開發(fā)之旅了!

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

命令欄工具下按 Ctrl + c 可以退出開發(fā)服務器(按一次沒用的話連續(xù)多按幾次)壶运。重新開啟則再次運行 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' # 把國際時區(qū)改為中國時區(qū) 

# 其它配置代碼

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

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

正常工作了喜命!

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

當然河劝,您還沒有真正開始工作壁榕。接下來,請執(zhí)行 python manage.py startapp [app_label] 來創(chuàng)建您的第一個應用赎瞎。

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末牡辽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子敞临,更是在濱河造成了極大的恐慌态辛,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挺尿,死亡現(xiàn)場離奇詭異奏黑,居然都是意外死亡,警方通過查閱死者的電腦和手機票髓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門攀涵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铣耘,“玉大人洽沟,你說我怎么就攤上這事∥舷福” “怎么了裆操?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵怒详,是天一觀的道長。 經(jīng)常有香客問我踪区,道長昆烁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任缎岗,我火速辦了婚禮静尼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘传泊。我一直安慰自己鼠渺,他們只是感情好,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布眷细。 她就那樣靜靜地躺著拦盹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪溪椎。 梳的紋絲不亂的頭發(fā)上普舆,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音校读,去河邊找鬼沼侣。 笑死,一個胖子當著我的面吹牛地熄,可吹牛的內(nèi)容都是我干的华临。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼端考,長吁一口氣:“原來是場噩夢啊……” “哼雅潭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起却特,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤扶供,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后裂明,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體椿浓,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年闽晦,在試婚紗的時候發(fā)現(xiàn)自己被綠了扳碍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡仙蛉,死狀恐怖笋敞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情荠瘪,我是刑警寧澤夯巷,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布赛惩,位于F島的核電站,受9級特大地震影響趁餐,放射性物質(zhì)發(fā)生泄漏喷兼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一后雷、第九天 我趴在偏房一處隱蔽的房頂上張望季惯。 院中可真熱鬧,春花似錦臀突、人聲如沸星瘾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽琳状。三九已至,卻和暖如春盒齿,著一層夾襖步出監(jiān)牢的瞬間念逞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工边翁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留翎承,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓符匾,卻偏偏與公主長得像叨咖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子啊胶,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容