最簡單的 Django 教程
一、Django簡介

二、Django項目實例
1. 程序安裝
python3.5、pip3及pycharm專業(yè)版自行安裝。pycharm不要使用免費版,它不支持Django。
(1)安裝Django:
http://www.cnblogs.com/qianyuliang/p/6729298.html
2. 創(chuàng)建django項目
在linux等命令行界面下,使用django提供的命令和vim也能進(jìn)行項目開發(fā)。但是,這里使用eclipse
點擊:file-->project,出現(xiàn)下面的對話框。

選擇PyDev/Django欄目,輸入項目名稱,這里采用國際慣例的mysite。

然后一直next就可以了
Django將自動生成下面的目錄結(jié)構(gòu):

與項目同名的目錄中是配置文件,templates目錄是html文件存放也就是MTV中的T(手動新建)。manage.py是django項目管理文件。

創(chuàng)建APP
在每個django項目中可以包含多個APP,相當(dāng)于一個大型項目中的分系統(tǒng)、子模塊、功能部件等等,相互之間比較獨立,但也有聯(lián)系。
所有的APP共享項目資源。
右鍵點擊mysite--->Django--->Create application

這樣就創(chuàng)建了一個叫做app01的APP,django自動生成“app01”文件夾。
編寫路由
路由都在urls文件里,它將瀏覽器輸入的url映射到相應(yīng)的業(yè)務(wù)處理邏輯。
簡單的urls編寫方法如下圖:

編寫業(yè)務(wù)處理邏輯
業(yè)務(wù)處理邏輯都在views.py文件里。

通過上面兩個步驟,我們將index這個url指向了views里的index()函數(shù),它接收用戶請求,并返回一個“hello world”字符串。
運行web服務(wù)
現(xiàn)在我們已經(jīng)可以將web服務(wù)運行起來了。
記得將app01寫入到settings.py中

命令行的方式是:python manage.py runserver 127.0.0.1:8000
在eclipse中--->run configurations

有這個提示,則表示啟動成功,然后打開瀏覽器,輸入127.0.0.1:8000

修改一下url,添加“/index”,就一切ok了!
至此,一個最簡單的django編寫的web服務(wù)就啟動成功了。
返回HTML文件
上面我們返回給用戶瀏覽器的是什么?一個字符串!實際上這肯定不行,通常我們都是將html文件返回給用戶。
下面,我們寫這么一個index.html文件:

再修改一下views文件:

為了讓django知道我們的html文件在哪里,需要修改settings文件的相應(yīng)內(nèi)容。但默認(rèn)情況下,它正好適用,你無需修改。

接下來,我們可以重新啟動web服務(wù)。在瀏覽器刷新一下,你會看到帶有樣式的“hello world”。
使用靜態(tài)文件
我們已經(jīng)可以將html文件返還給用戶了,但是還不夠,前端三大塊,html、css、js還有各種插件,它們齊全才是一個完整
的頁面。在django中,一般將靜態(tài)文件放在static目錄中。接下來,在mysite中新建個static目錄。

你的CSS,JS和各種插件都可以放置在這個目錄里。
為了讓django找到這個目錄,依然需要對settings進(jìn)行配置:

同樣,在index.html文件中,可以引入js文件了:

重新啟動web服務(wù),刷新瀏覽器,查看結(jié)果。
接收用戶發(fā)送的數(shù)據(jù)
上面,我們將一個要素齊全的html文件返還給了用戶瀏覽器。但這還不夠,因為web服務(wù)器和用戶之間沒有動態(tài)交互。
下面我們設(shè)計一個表單,讓用戶輸入用戶名和密碼,提交給index這個url,服務(wù)器將接收到這些數(shù)據(jù)。
先修改index.html文件

然后修改views.py文件

此時 ,重啟web服務(wù)時,會出錯,因為django有一個跨站請求保護機制,我們在settings文件中將它關(guān)閉。

再次進(jìn)入瀏覽器,刷新頁面:
輸入點東西,然后我們在eclipse中可以看到相應(yīng)的數(shù)據(jù)。
返回動態(tài)頁面
我們收到了用戶的數(shù)據(jù),但返回給用戶的依然是個靜態(tài)頁面,通常我們會根據(jù)用戶的數(shù)據(jù),進(jìn)行處理后在返回給用戶。
這時候,django采用jinja2語言編寫動態(tài)模板,jinja2會根據(jù)提供的數(shù)據(jù),替換掉html中的相應(yīng)部分,詳細(xì)語法入門后再深入學(xué)習(xí)。
先改造views.py文件:

再改造index.html文件:

重啟服務(wù),刷新瀏覽器:

可以看到,我們獲得了用戶實時輸入的數(shù)據(jù),并將它實時展示在了用戶頁面上,這是個不錯的交互過程。
使用數(shù)據(jù)庫
流程走到這里,django的MTV框架基本已經(jīng)浮出水面了,只剩下最后的數(shù)據(jù)庫部分了。
上面我們雖然和用戶交互得很好,但并沒有保存任何數(shù)據(jù),頁面一旦關(guān)閉,或服務(wù)器重啟,一切都將回到原始狀態(tài)。
使用數(shù)據(jù)庫是毫無疑問的,下面使用mysql數(shù)據(jù)
在settings中,配置數(shù)據(jù)庫相關(guān)的參數(shù),如果使用自帶的sqlite,不需要修改。然后在mysql數(shù)據(jù)庫創(chuàng)建mysite庫

再編輯models.py文件,也就是MTV中的M。

這里我們創(chuàng)建了2個字段,分別保存用戶的名字和密碼。
接下來要在后臺中通過命令創(chuàng)建數(shù)據(jù)庫的表了。有2條命令,分別是:
python manage.py makemigrations
再輸入命令:python manage.py migrate
或者在eclipse中,右鍵點擊mysite--->django--->makemigrations

然后右鍵點擊mysite--->django--->migrate

修改views.py中的業(yè)務(wù)邏輯

重啟web服務(wù)后,刷新瀏覽器頁面,之后和用戶交互的數(shù)據(jù)都能保存到數(shù)據(jù)庫中。任何時候都可以從數(shù)據(jù)庫中讀取數(shù)據(jù),展示到頁面上。
至此,一個要素齊全,主體框架展示清晰的django項目完成了,其實很簡單是不是?
三、 Django總結(jié)
作為python必須web框架的Django,它的功能強大,內(nèi)容全面,但同時也意味著限制頗多,靈活性低,可修改性差,這就是魚和熊掌不可兼得了。
我們學(xué)習(xí)Django,其實就是學(xué)習(xí)一個軟件,要理解它的基本原理,把握它整體框架,牢記一些基本規(guī)則,剩下的就是不斷深入細(xì)節(jié),然后熟能生巧、經(jīng)驗多少的問題了,不存在多高深的不可掌握技術(shù)。
福利
推薦閱讀:
入門: 最全的零基礎(chǔ)學(xué)Python的問題 | 零基礎(chǔ)學(xué)了8個月的Python | 實戰(zhàn)項目 |學(xué)Python就是這條捷徑
干貨:爬取豆瓣短評,電影《后來的我們》 | 38年NBA最佳球員分析 | 從萬眾期待到口碑撲街!唐探3令人失望 | 笑看新倚天屠龍記 | 燈謎答題王 |用Python做個海量小姐姐素描圖 |碟中諜這么火,我用機器學(xué)習(xí)做個迷你推薦系統(tǒng)電影
趣味:彈球游戲 | 九宮格 | 漂亮的花 | 兩百行Python《天天酷跑》游戲!
AI: 會做詩的機器人 | 給圖片上色 | 預(yù)測收入 | 碟中諜這么火,我用機器學(xué)習(xí)做個迷你推薦系統(tǒng)電影
小工具: Pdf轉(zhuǎn)Word,輕松搞定表格和水??! | 一鍵把html網(wǎng)頁保存為pdf!| 再見PDF提取收費! | 用90行代碼打造最強PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換 | 制作一款釘釘?shù)蛢r機票提示器! |60行代碼做了一個語音壁紙切換器天天看小姐姐!|
年度爆款文案
點閱讀原文,領(lǐng)廖雪峰視頻資料!


