Django的介紹及環境搭建
學習一時爽,一直學習一直爽
Hello,大家好,我是 Connor,一個從無到有的技術小白。從這篇文章起,我們就要學習一個全新的內容了,這部分內容就是 Python Web應用程序開發。這是一個全新的系列。在本系列我們將繼續秉承逗中學,學中逗的思路。讓大家學習不是那麼枯燥無味。那麼話不多說,讓我們開始吧?
1. 與 Django 的第一次邂逅
說到Django,我想大多數學過 Python 一段時間的人都不會陌生。那句話怎麼說來着? 沒吃過豬肉,也見過豬跑。即便是沒有用過,學習過 Django 的人,也是聽過 Django 的大名的。那麼我們一起來看看 Django 究竟是如何誕生的,它的身世又是如何的:
1.1 Django 的身世
大部分小編在寫技術類文章的時候,都不喜歡寫一些知識的或者一些庫的介紹啊,歷史啊。畢竟學到東西是最重要的。這確實沒有錯。但是我和他們不一樣。我喜歡告訴大家一些冷知識。所以我也經常會查一下資料來告訴大家這些東西的由來或歷史…
Emmn… 我不瞎說了,我們真的要看 Django 的歷史了。
Django是一個開放源代碼的Web應用框架,由Python寫成。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容爲主的網站的,即是CMS(內容管理系統)軟件。並於2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。
有人會說,你這不就是從百度百科上抄來的嘛,還歷史。我信了你的邪,你個糟老頭子壞滴很!別急,確實這是你們所知道的歷史,我們來看看我所瞭解的 Django 的歷史。
Django 是從真實世界的應用中成長起來的,它是由堪薩斯(Kansas)州 Lawrence 城中的一個網絡開發小組編寫的。 它誕生於2003年秋天,那時 Lawrence Journal-World 報紙的程序員 Adrian Holovaty 和 Simon Willison 開始用 Python 來編寫程序。
當時他們的 World Online 小組製作並維護當地的幾個新聞站點, 並在以新聞界特有的快節奏開發環境中逐漸發展。這些站點包括有 LJWorld.com、Lawrence.com 和 KUsports.com,記者(或管理層) 要求增加的特徵或整個程序都能在計劃時間內快速的被建立,這些時間通常只有幾天 或幾個小時。因此,Adrian和Simon開發了一種節省時間的網絡程序開發框架,這是在截止時間前能完成程序的唯一途徑。
2005年的夏天,當這個框架開發完成時,它已經用來製作了很多個 World Online 的站點。當時 World Online 小組中的 Jacob Kaplan-Moss 決定把這個框架發佈爲一個開源軟件。從今往後數年,Django是一個有着數以萬計的用戶和貢獻者,在世界廣泛傳播的完善開源項目。原來的World Online的兩個開發者(Adrian and Jacob)仍然掌握着Django,但是其發展方向受社區團隊的影響更大。
MMP,你不要插話。整天就想着下班,我們下面來看 Django的優缺點,作爲一個框架,如果沒有足夠的優點是不會有人來使用的。
1.2 Django 的優缺點
Django 是一個全能型的框架,這個框架具有下列優點:
- 功能完善、要素齊全:該有的、可以沒有的都有,自帶大量常用工具和框架,無須你自定義、組合、增刪及修改。
- 完善的文檔:經過十多年的發展和完善,Django有廣泛的實踐案例和完善的在線文檔。開發者遇到問題時可以搜索在線文檔尋求解決方案。
- 強大的數據庫訪問組件:Django的Model層自帶數據庫ORM組件,使得開發者無須學習其他數據庫訪問技術(SQL、pymysql、SQLALchemy等)。
- 靈活的URL映射:Django使用正則表達式管理URL映射,靈活性高。新版的2.0,進一步提高了URL編寫的優雅性。
- 豐富的Template模板語言:類似jinjia模板語言,不但原生功能豐富,還可以自定義模板標籤,並且與其ORM的用法非常相似。
- 自帶後臺管理系統admin:只需要通過簡單的幾行配置和代碼就可以實現一個完整的後臺數據管理控制平臺。
- 完整的錯誤信息提示:在開發調試過程中如果出現運行錯誤或者異常,Django可以提供非常完整的錯誤信息幫助定位問題。
當然有優點就有缺點,Django框架也擁有如下的缺點:
- 框架龐大,被認爲不夠精簡、捆綁的內容太多
- 在異步通信方面略有欠缺
我們只是客觀地來看待嘛,雖然缺點確實有點牽強,但是這些情況到了 Django 2.0以後都有所改善,已經好很多了,確實有點雞蛋裏頭挑骨頭的樣子。但是總要寫幾個吧?就這樣了。
1.3 Django 的架構設計
Django是一個基於MVC構造的框架。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以 Django 裏更關注的是模型(Model)、模板(Template)和視圖(Views),稱爲 MTV模式。它們各自的職責如下:
層次 | 職責 |
---|---|
模型(Model)即數據存取層 | 處理與數據相關的所有事務: 如何存取、如何驗證有效性、包含哪些行爲以及數據之間的關係等。 |
模板(Template),即表現層 | 處理與表現相關的決定: 如何在頁面或其他類型文檔中進行顯示。 |
視圖(View),即業務邏輯層 | 存取模型及調取恰當模板的相關邏輯。模型與模板的橋樑。 |
好了,講到這裏我們差不多就完成對 Django 的介紹了,下面我們開始搭建環境吧。
2. Django環境的搭建
在開始演示搭建之前,我們現在瞭解一下我們可能需要用到的知識,以及需要用到的工具。
2.1 搭建環境需要用到的工具
在工具這方面,我們需要的工具可以說非常少,分別如下:
-
Pycharm :對於一個開發Python的人來說,Pycharm是必不可少的開發工具。雖然有些人說 VScode也非常好用,但是我覺得在Python開發工具中,還是Pycharm用的最舒坦,最方便。
-
VMware/VirtualBox :二選一,虛擬機行業的兩大巨頭,相比之下我個人還是更加喜歡使用VMware,所以下面的教程中我們會以VMware爲例
-
Xshell :這項工具並不是必備的,當然有的話更好。Xshell可以很好地提高我們的效率,對一些亂碼等問題解決較好,而且字體也比較漂亮比較大,所以如果有能力的話最好裝一個Xshell。
2.2 搭建環境的步驟
下面我們就開始通過實際操作來搭建 Django 的開發環境了。
2.2.1 創建虛擬環境
有人可能會說,我們應該先安裝 Django,但是在創建項目之前我們要先創建一個獨立的虛擬環境。創建一個虛擬環境有助於我們和實際環境分開。它有助於保護我們的真實環境,還能達到真實環境的效果。
通常我們都知道使用虛擬環境,但是虛擬環境大多都是別人給創建好的。所以我們下面來看如何創建一個新的虛擬環境:
mkvirtualenv -p [Python的安裝路徑] [虛擬環境名稱]
以我的環境爲例,給大家演示一下:
從上圖中我們可以看到,我們通過命令創建了一個名爲 jangoenv
的虛擬環境。當我們創建完之後我們就自動的進入了這個虛擬環境。其他的有關虛擬環境的操作我們暫時先不討論了,在之後我會再出一期,專門來介紹虛擬環境。下面我們接着往下走。
2.2.2 安裝 django庫
大家都學習 Python 這麼久了,我想安裝庫這種事已經不需要我說了。除非有特殊情況我纔會講明。這裏我把命令給了大家,自己自行安裝即可。
pip install django
**注意:**安裝 django 庫的時候需要在虛擬環境中進行安裝。不同的虛擬環境之間庫是不可以共
用的,如果你沒在虛擬環境中,請使用下面命令進入虛擬環境後再進行安裝:
workon [envname]
2.2.3 爲pycharm創建一個新項目
創建好虛擬環境後,我們要在pycharm中創建一個新的項目。這個項目用於我們的django管理,它需要使用新建的虛擬環境內的編譯器。
- 選擇創建新項目
- 選擇創建 Pure Python 項目,在 Location 處選擇你的本地項目路徑。在 Interpreter 處選擇我們要使用的解釋器。
- 由於我們是新創建的虛擬環境,所以我們需要自己手動添加。選擇
...
然後進入如下界面。選擇 SSH Interpreter 。填寫虛擬機的 ip 地址,端口號以及登錄用的用戶名。
- 填寫密碼,記得勾選保存密碼。
- 選擇我們新建的虛擬環境中的解釋器路徑。如果你想要使用自己的其他解釋器,自己選擇即可
- 我們點擊完成後就回到了前面創建項目的界面。我們要選擇虛擬機中項目的保存目錄,這個目錄可以自己隨意定義
- 點擊 create 創建完成之後,我們再選擇 Tools - Deployment - Configuration 來修改一下配置
- 在創建之前,爲了方便使用,我們來修改一下創建的遠程服務器的名稱以及默認上傳設置
- 修改名稱和默認上傳完成之後我們要修改一下項目根目錄配置。從 Mapping 中剪切 Deployment path 複製到 Connection 中的 Root path,並將 Depolyment path 修改成 /
- 到這裏我們就完成了簡單的 pycharm 項目創建了。下面我們就要在虛擬機使用 django命令創建一個 django項目,並同步到 pycharm 中來了。
Emmn…我講的有那麼無聊嗎?你都快睡着了…快清醒下,下面纔是更重要的東西,你要是不好好看到後面的時候可能有各種未知的錯誤的,快好好聽講啊。
2.2.4 創建一個 django項目並進行同步
django 和 scrapy 有些類似,如果我們想要開始一個項目的話,首先要通過 django 的命令來創建一個項目。我們可以通過如下命令創建一個項目:
django-admin startproject <projectname>
**注意:**請不要上來就創建項目,請管理好你的文件夾,文件夾管理的好的話,對於很多事情來說都會非常方便的。下面我們以我的環境爲例,爲大家創建一個 django項目:
這裏做了一個錯誤示範,我們使用了 名爲 test 來創建項目,結果報錯提示與Python的模塊命名衝突,請我們使用別的項目名。這是我們常犯的錯誤,有時候我們覺得方便的名稱,其實可能潛在的是Python中的某個模塊的名稱。這樣做容易導致出現文件引用問題。所以我們儘量要命名可以避免與Python內置的模塊重名。充分使用 數字和下劃線等符號。
通過 django 命令創建了一個新的項目。這個項目包含了一個同名的文件夾和一個 manage.py 文件。這個同名的文件夾就是項目文件夾,而這個 manage.py 就是啓動文件。
在創建完成項目之後,我們就要把項目同步到 pycharm 中。選擇 Tools - Deployment - Brower Remote Host 即可看見項目文件。點擊刷新,右鍵選擇 download from here 即可將虛擬機中的項目文件同步到本地了。
同步完成了我們可以通過配置來進行 pycharm 啓動項目。下面我們就來講如何通過配置來從 pycharm 啓動 django 項目。
2.2.5 配置 pycharm 啓動 django 項目
- 首先我們點擊 Add Configuration 來添加一個新的運行配置
- 選擇 Django server,爲了方便選擇可以修改運行配置的名稱。給該配置添加 運行的地址以及端口。Host 填寫 0.0.0.0 允許任何設備訪問。Port 使我們要運行在哪個端口上,默認運行在 8000端口中。配置好地址和端口後我們還要配置運行使用的解釋器,這裏選擇我們之前創建項目新建的解釋器。選擇完成後我們點擊 Fix。
- 點擊 Fix 會進入下面的界面。將 Enable Django Support 打開。選擇 Django Project的根目錄,即我們創建的項目的目錄。然後再配置 項目的 settings.py 文件以及 manage.py文件
- 配置完成後就可以執行了,當出現下面的內容時就說明我們運行成功了。可能有的小夥伴會給我說你沒有設置 DJANGO_SETTINGS_MOUDLE 。但是如果你的配置正確的話當你點擊執行的時候它會自動爲你添加的。所以配置這一項不是必要的。
- 如果我們想要在瀏覽器中進行訪問,就需要再做一個步驟。打開項目中的 settings.py 文件,然後將其中的 ALLOWED_HOSTS 中添加一個
‘*’
星號。然後重新啓動項目。之後在 瀏覽器訪問 127.0.0.1:8000 或者 localhost:8000即可看到訪問結果了。
下期預告
我們現在講完了 Django 的環境配置,但是還只能訪問它配置的默認界面,我們如何創建自己的頁面呢?敬請期待下一期: Django的模板。 我們將詳細講解 Django 框架中的模板。
好了,這就是今天的內容了,不知道你又學會了多少呢?我是Connor,一個從無到有的技術小白,願你在前進的道路上堅持不懈!我們下期再見!
學習一時爽,一直學習一直爽!