零基礎(chǔ)入手Django(一):基本介紹及環(huán)境搭建
一、Django是什么?
Django是python web開發(fā)中的一個常用應(yīng)用框架。

可能很多小伙伴對web開發(fā)并不了解,下面我們就來簡單梳理一下web應(yīng)用的基本流程。能用圖說明白的我們絕不廢話,其基本流程如下圖所示。

其中http服務(wù)器,用來接受用戶請求,并將請求轉(zhuǎn)發(fā)給Web應(yīng)用框架進行處理。Web應(yīng)用框架處理完以后再發(fā)送給http服務(wù)器,http服務(wù)器再返回給用戶。
如果看到這兒,你還是不太清楚的話,你可以這樣理解Django,“Django就是用來做網(wǎng)站后臺的,是web開發(fā)中的一種框架”。
二、環(huán)境搭建
1.工具準(zhǔn)備
(1)虛擬機軟件 (2)LInux系統(tǒng)(這里以Ubuntu為例) (3)python3(3.5) (4)Pychram(2018.1.4) (5)MySQL(5.7)
2.虛擬環(huán)境
在搭建環(huán)境之前,我們需要先了解一下虛擬環(huán)境。

虛擬環(huán)境主要解決的是版本的問題。
例如,項目一用的是Django的1.1版本,項目二用的是Django的2.0版本,而python的大環(huán)境只允許一個版本出現(xiàn)這時怎么辦呢?(Django1.1和Django2.0是有很大的區(qū)別的,它們的URL路由配置有很大的不同)

python大哥面對這種情況也是沒有關(guān)系的~因為它有virtualenv? wrapper(virtual environment wrapper"虛擬環(huán)境擴展包"的縮寫)。它可以為不同的版本創(chuàng)建不同的環(huán)境來使用。
3.創(chuàng)建虛擬環(huán)境
創(chuàng)建虛擬環(huán)境的常用命令集合如下:
(1)workon查看當(dāng)前的虛擬環(huán)境都有哪些

可以看到此時,我們的虛擬環(huán)境共有“env2py"和”py3env“這兩個。
(2)創(chuàng)建虛擬環(huán)境
我們使用如下命令創(chuàng)建一個名為”djtest2.1"的虛擬環(huán)境
xshell端查看如下:

可以看到? 我們已自動進入djtest2.1的虛擬環(huán)境,我們使用pip list?查看當(dāng)前虛擬環(huán)境中的庫。

(3)安裝django庫
我們使用pip install django來為虛擬環(huán)境安裝django庫

安裝成功后,使用pip list進行查看,可以發(fā)現(xiàn)Django已安裝在我們的虛擬環(huán)境中,版本為2.1.5。

值得注意的是:
在虛擬環(huán)境中 pip install 安裝庫不需要加sudo命令,而在非虛擬環(huán)境的Linux環(huán)境下使用pip install安裝庫則需要加sudo命令。
(4)創(chuàng)建項目
首先,創(chuàng)建名為“dj_project"的文件夾用來存儲項目,創(chuàng)建后通過ls命令進行查看,是否建好。
創(chuàng)建界面如下:

創(chuàng)建后?使用cd命令進入”dj_project"文件夾
開始創(chuàng)建django項目,項目名稱為“hello_django"
界面如下:

安裝"tree"查看文件結(jié)構(gòu)
安裝界面如下:

安裝完成后,使用tree進行查看

我們可以看到,在項目目錄下有個和項目同名的目錄”hello_django",我們將其稱之為“主目錄”。其中"_init_.py"用來表明它是一個pyhton的包;“settings.py"是項目的配置文件;”urls.py“用來配置路由;”wsgi.py"是項目部署服務(wù)器所用。
和主目錄同級的有個“manage.py”它被稱之為“命令行”或是“管理器”
(5)pycharm代碼同步
所謂的代碼同步,就是將虛擬機ubuntu系統(tǒng)中的代碼同步到windows的編輯器pycharm中,使用pycharm進行代碼的編輯。
#1首先,在windows本地新建一個文件夾用來存放django項目,小叮當(dāng)在e盤新建了名為“djproject”的文件夾。

#2在文件夾中創(chuàng)建與項目同名的文件夾“hello_django”

#3?在“file"選項下選中”New Project"

在彈出的界面中選中我們在指定位置新建的文件夾

選擇完成后的界面如下

在彈出的界面中,選擇“open in new window"點擊”ok"

在新的界面中選擇“Tools"--"Deployment"--"configuration"

在彈出的界面左上方點擊”綠色小加號“,出現(xiàn)”add server"對話框,隨意起個名字,"type"選擇“SFTP"用于代碼同步。

接著在彈出的界面中,在SFTP?host輸入你的虛擬機中Ubuntu的IP地址(若是蘋果電腦,虛擬機為vitrulbox使用127.0.0.1),輸出對應(yīng)username(用戶名)和password(密碼),記得勾選”save password“,便于下次使用。

當(dāng)這些填完時,點擊”Test SFTP connection"進行連接測試

測試成功后,點擊“Mapping"進行路徑映射。

點擊服務(wù)器路徑設(shè)置框右邊的三個點在彈出的ubuntu目錄中找到home文件下的pyvip/dj_project/hello_django(也就是我們的django項目位置)

完成路徑設(shè)置后,點擊“ok"

在主頁面選中”hello_django"之后,點擊“tools”--“deployment”--"download from test"(從服務(wù)器上下載代碼到本地)

點擊之后pycharm則會有如下文件下載提示。

下載之后點擊項目文件夾,可以發(fā)現(xiàn),ubuntu中創(chuàng)建的django項目已被我們同步到windows本地。

(6)pycharm創(chuàng)建django項目上傳到Ubuntu
除了在Ubuntu端創(chuàng)建django項目pycharm同步到本地編輯之外,我們還可以通過pycharm創(chuàng)建django項目上傳到Ubuntu服務(wù)器。
#1為pycharm配置Linux運行環(huán)境
在pycharm主界面找到“file”--"default settings"--"project interpreter"
點擊右邊的小齒輪

點擊“add”添加

選擇“ssh interpreter”(遠程解釋器)輸入相應(yīng)的主機地址“192.168.255.130”和用戶名后,點擊“next”

輸入密碼后,點擊“next”

檢查下解釋器的位置,確認正確后,點擊“Finish”完成。

之后進入解釋器的界面,點擊“ok”即可。

下面我們從”tools“--”deployment"--"options"中進行同步方式設(shè)置。

為避免pycharm出現(xiàn)卡頓,我們在"uplaod changed files...."自動上傳設(shè)置里選擇”on explicit save action(ctrl+s)"表示,只有當(dāng)按下“ctrl+s"時才會上傳。選擇”alway"表示實時更新上傳,可能會令pycharm出現(xiàn)卡頓的現(xiàn)象。

#2在pycharm中創(chuàng)建django項目
選擇"file"---"new project"--"django"

我們?yōu)轫椖科鹈麨椤皌est_hello_django”,選擇“existing interpreter”(已存在的解釋器)找到我們剛建好的“遠程解釋器”

選擇遠程目錄為我們在ubuntu中創(chuàng)建好的“dj_project”文件夾

將我們要創(chuàng)建的項目名稱“test_hello_django”加在遠程目錄之后

接下來?我們點擊”more settings"(更多設(shè)置),我們在"Application name"那一欄中寫入“book"

其中共有四欄,“Template language"指模版語言,我們選用默認的”Django"即可?!癟emplates folder"指系統(tǒng)為我們創(chuàng)建的模版文件夾的名稱?!盇pplication name“指項目創(chuàng)建app(應(yīng)用)的名稱?!盓nable Django admin"打上對勾表示使用Django自帶的管理后臺。
設(shè)置完成之后,點擊”create",在彈出的界面中選擇“從新的窗口”打開。

點擊“ok"后會彈出sudo密碼確認窗口,我們輸入密碼即可。

之后我們便可以看到創(chuàng)建的test_hello_django項目,和相應(yīng)的自動上傳提示。

我們通過xshell在ubuntu中查看,可以看到項目已成功同步到ubuntu服務(wù)器中。

(7)啟動服務(wù)方法一
(5)(6)為django創(chuàng)建項目的兩種方法,在項目創(chuàng)建完成后,我們便要開始啟動服務(wù)了。
下面我們以"hello_django"項目為例進行說明:
#1?允許所用主機訪問項目
在settings.py中,找到"allowed_hosts"令其等于“*”表示該項目允許所有主機訪問。
最后“ctrl+s"上傳到服務(wù)器。

#2 在xhell段進入項目目錄,在目錄下輸入啟動項目命令
如下所示

#3?在瀏覽器中輸入相應(yīng)ip地址和端口號進行測試
出現(xiàn)以下界面表示,項目運行成功

(8)啟動服務(wù)方法二
#1配置項目運行環(huán)境為ubuntu下創(chuàng)建的虛擬環(huán)境
點擊“file"--"settings"--"project interpreter"點擊右邊的小齒輪選擇”add"進行添加

選擇“ssh interpreter"填寫相應(yīng)的主機地址,用戶名,點擊”next“

輸入密碼,點擊“next"

選擇/home/pyvip/找到.virtualenvs路徑下我們創(chuàng)建胡虛擬環(huán)境djtest2.1其bin目錄下的python3.6(完整地址為/home/pyvip/.virtualenvs/djtest2.1/bin/python3.6)

選擇映射地址

點擊”remote path"遠程地址進行更改

更改為項目所在地址/home/pyvip/dj_project/hello_django

更改后點擊“ok”,在確認解釋器和linux端項目位置正確后點擊“finish"

在確認解釋器正確后,點擊”ok“

#2選擇編輯器右上角的Edit Configuration?按鈕

#3點擊添加選擇”django server"

#4配置“django server"
在name文本框自定義名稱為”hello_django";host文本框命名為“0.0.0.0”

在Environment variables?處點擊右邊的“三個點”

添加環(huán)境變量“DIJANGO_SETTINGS_MODULE"值為"項目名稱+settings"即”hello_django.settings"

選擇解釋器為我們配置的虛擬環(huán)境(djtest2.1)中的python,點擊”ok“

若有紅色警報,點擊”fix"

在Enable django support處勾選對號,選擇本地"hello_django"所在位置,和其"hello_django.settings"的文件位置,選好后,點擊“ok"即可。

之后點擊hello_django右側(cè)的綠色小播放按鈕,即可運行

此時仍在瀏覽器中輸入”192.168.255.130:8000“,出現(xiàn)以下界面則證明我們運行成功。

三、創(chuàng)建視圖、新建APP
1.創(chuàng)建視圖
(1)在項目中直接新建“views.py”
在項目處右擊,“new”--"python file"

起名為“views”

在“views.py”中輸入以下代碼
如下所示

(2)配置路由,點擊“urls.py”進行編輯
加上如下代碼即可

其中所加代碼含義如下:
(3)上傳代碼到服務(wù)器后,開啟服務(wù)
在項目處右擊,找到“deployment”--"upload to test"(test為我們前幾步時創(chuàng)建好的遠程會話)

開啟服務(wù)

在瀏覽器中輸入“http://192.168.255.130:8000/hello/”

可以看到windows網(wǎng)頁客戶端已成功返回我們部署在虛擬機ubuntu服務(wù)器上的內(nèi)容“大家好我是IT小叮當(dāng)”
2.新建app
(1)了解什么是app
app全稱application(應(yīng)用的意思),在django項目中可以理解為“板塊”的意思。
我們以豆瓣網(wǎng)為例進行說明,(因為豆瓣就是django寫的),將整個豆瓣網(wǎng)看做一個django項目,其中主頁的“讀書”、電影“、”音樂”、“小組”、“同城”、“FM”、“時間”、“豆品”等就可看做是項目中的一個個app。

(2)新建app
方式一:通過命令行創(chuàng)建
在項目目錄下輸入相應(yīng)的創(chuàng)建app命令即可。
創(chuàng)建界面如下

我們用tree命令查看

可以看到系統(tǒng)已經(jīng)為我們搭好了框架,我們只需在其中填寫內(nèi)容即可。
我們在本地"hello_django"處右鍵---“deployment”--"download from xxx"(xxx為你自己創(chuàng)建的會話連接)

下載后可以看到名book的app已經(jīng)同步到本地。

方式二:在pycharm中創(chuàng)建
在pycharm中找到“tools”--"run manage.py task...."

點擊后可以看到pycharm已經(jīng)幫我們自動運行了python manage.py

我們直接在其后輸入“startapp movie”新建一個名為movie的app

可以看到我們以ssh的方式通過本地pycharm已在ubuntu服務(wù)器上建立app,接下來仍然是將代碼同步到本地即可。(參考方式一的代碼同步,這里不再贅述)

如果你耐心的看到這里,恭喜你,你已經(jīng)掌握了Django的基本認知--工具準(zhǔn)備--新建項目--代碼同步--開啟服務(wù)--創(chuàng)建視圖--新建應(yīng)用
