要使用 Django,首先必須先安裝 Django。css
下圖是 Django 官網的版本支持,咱們能夠看到上面有一個 LTS 存在。什麼是 LTS 呢?LTS ,long-term support,也就是長期技術支持版的意思。長期技術支持版意味着資料的豐富程度和穩定性會比其餘版本的要好。能夠看到,目前的長期技術是 1.11,而上一個長期技術支持版是 1.8 ,咱們儘可能使用 1.11 長期技術支持版,由於企業在作技術選型的時候,選擇的每每不是最新的,而是最穩定的。html
選定版本以後,安裝就一句python
pip3 install django==1.11.11
安裝完成以後能夠查看 Django 版本django
django-admin --version
新建 Django 項目瀏覽器
django-admin startproject 項目名稱
固然,咱們開發 Django 項目的時候,一般會使用 pycharm 這款 IDE。服務器
如上圖所示,你能夠設置項目存儲的路徑,而後能夠新建一個虛擬環境,也能夠選擇使用已有的虛擬環境。框架
新建項目打開以後,你會看到以下圖所示的文件結構。socket
manage.py # 管理Django項目的入口文件 settings.py # 設置相關 urls.py # 路徑與函數對應關係 wsgi.py # socket通訊相關 __init__.py # 只是爲了代表這個文件夾是一個包
咱們先像上一次那樣,一步一步來,熟悉 Django 項目結構。ide
咱們先把路徑與函數的對應關係處理好,先在 urls.py 中進行配置。函數
HttpResponse 模塊的引入
在這裏,咱們須要引進 Django 自帶的處理 HTTP 響應的模塊 HttpResponse
HttpResponse 模塊能夠幫咱們作 HTTP 協議的響應,咱們只須要關心處理用戶請求的函數就能夠了,而不須要關注協議自己所作的事情。
from django.conf.urls import url # 導入 Django 自帶的 HttpResponse 模塊,用它來幫咱們作HTTP協議的響應 # 這樣,咱們只須要關心處理用戶請求的函數就能夠了,而不須要關注協議自己所作的事情 from django.shortcuts import HttpResponse def yimi(request): # request參數保存了全部和用戶瀏覽器請求相關的數據 # 把想要顯示在頁面上的內容寫到 HttpResponse 函數的括號裏面便可 return HttpResponse('<h1>hello,yimi!</h1>') def xiaohei(request): # request參數保存了全部和用戶瀏覽器請求相關的數據 # 把想要顯示在頁面上的內容寫到 HttpResponse 函數的括號裏面便可 return HttpResponse('<h1>hello,xiaohei!</h1>') # 保存了路徑與函數的對應關係 urlpatterns = [ url(r'^yimi/$', yimi), url(r'^xiaohei/$', xiaohei), ]
配置好後,如何查看呢?須要運行 Django 項目。
命令行運行 Django 項目:在項目的根目錄下(也就是有manage.py的那個目錄),運行:
python3 manage.py runserver IP:端口 --> 在指定的IP和端口啓動 python3 manage.py runserver 端口 --> 在指定的端口啓動 python3 manage.py runserver --> 默認在本機的8000端口啓動
pycharm 運行:點擊右上角綠色的小三角,直接能夠啓動Django項目(前提是小三角左邊是你的Django項目名)。
運行後,輸入 127.0.0.1:8000/xiaohei/ 能夠看到正常的運行結果。
能夠感覺到,使用 Django 框架以後,開發服務端方便了不少。咱們只須要作 ①定義函數 ②定義函數和路徑的對應關係 這兩件事情就可使得服務端正常響應。
settings.py中有幾個配置咱們必須清楚的。
BASE_DIR 配置
因此,BASE_DIR 也就是......
TEMPLATES 配置
有人可能會納悶,這裏 'DIRS' 爲何不使用字符串拼接的方式呢?緣由,你這一個項目在開發的時候用的是 Windows 平臺,項目最終都要部署到服務器,服務器卻不必定是 Windows 平臺的,大部分狀況下都是 Linux 平臺,Windows 平臺和 Linux 平臺的路徑分隔符是不同的,因此經過 os 模塊函數進行拼接會更好。
STATICFILES_DIRS 靜態文件文件夾配置
一個 HTML 一般會有許許多多的 CSS 樣式和 js 動畫效果,所以會有許許多多的 css 文件和 js 文件,它們一般不會和 HTML 文件放在一塊兒,而是放在一個叫 static 的文件夾中。這個 static 文件夾就叫作靜態文件夾。
在項目根目錄下新建 static 目錄
咱們新建了 static 目錄用來放靜態文件,要想要 Django 幫咱們找到這些靜態文件,必須先在 settings.py 中告訴它這個文件夾在哪裏。
固然,若是你有多個靜態文件目錄,你也能夠寫到 STATICFILES_DIRS 裏面,Django 會按照你寫的目錄的前後順序,從上往下進行靜態文件的查找。
模板的引入
咱們在 templates 目錄下新建了一個 yimi.html,而後在 urls.py 中經過以前 python 文件讀取的方式返回完整的 HTML 頁面
能夠發現,經過 python 的方式查找文件須要咱們本身制定文件路徑,過於麻煩
render 模塊的引入
這時候,咱們能夠引入 render 模塊,讓 Django 本身去幫咱們找 HTML 文件
from django.conf.urls import url # 導入 Django 自帶的 HttpResponse 模塊,用它來幫咱們作HTTP協議的響應 # 這樣,咱們只須要關心處理用戶請求的函數就能夠了,而不須要關注協議自己所作的事情 from django.shortcuts import HttpResponse, render # 要返回一個完整的HTML文件,就須要用到render模塊 def yimi(request): # request參數保存了全部和用戶瀏覽器請求相關的數據 # 把想要顯示在頁面上的內容寫到 HttpResponse 函數的括號裏面便可 # with open('./templates/yimi.html', 'r', encoding='utf-8') as f: # data = f.read() # return HttpResponse('<h1>hello,yimi!</h1>') # render的第一個參數是request,第二個參數是咱們想要返回的HTML文件名字 # 這個文件的路徑就是以前在settings.py中配置好的 templates return render(request, 'yimi.html') def xiaohei(request): # request參數保存了全部和用戶瀏覽器請求相關的數據 # 把想要顯示在頁面上的內容寫到 HttpResponse 函數的括號裏面便可 return HttpResponse('<h1>hello,xiaohei!</h1>') # 保存了路徑與函數的對應關係 urlpatterns = [ url(r'^yimi/$', yimi), url(r'^xiaohei/$', xiaohei), ]
靜態文件的引入
你可能會問:「我寫了一個超級好看的頁面,把它的 css 獨立出來,放在 Django 項目的根目錄下了,應該怎麼在 HTML 頁面中引進來呢?」
只需下圖所示一步便可
views.py 文件的引入
到這裏,你可能會發現一些問題。
例如,咱們如今的所有邏輯處理函數 和 函數與路徑的對應關係,都是寫在 urls.py 中的,隨着咱們項目的發展壯大,咱們須要的處理函數將會愈來愈多,將處理函數與函數路徑的對應關係寫在一個文件中,將會大大影響咱們對程序的理解。
所以,咱們如今要將咱們本身寫的 邏輯處理函數 和 函數與路徑的對應關係 分離開,分紅獨立的文件。一個專門用來寫邏輯處理函數,用於處理客戶端發過來的請求;另外一個則專門用來寫函數與路徑的對應關係。
在 項目同名 APP 目錄下新建一個 views.py 文件,把原來在 urls.py 中寫的邏輯處理函數所有移到 views.py 中。
urls.py 文件中須要導入咱們寫的那些邏輯函數。
這樣下來,Django 項目中各個文件的關係也就清晰多了,並且,我不會告訴你,到如今,你已經接觸到了 Django MTV 框架的精髓的哦^_^
到這裏,相信你也已經成功地安裝了 Django ,並熟悉了 HttpResponse 模塊、render 模塊的使用,還有 settings 中 BASE_DIR、TEMPLATES、STATICFILES_DIRS 的配置,知曉了爲何要把 views 和 urls 文件進行分離。
下一節,咱們將經過一個用戶登陸頁面,來進一步學習 Django 的使用,體會 Django 的魅力所在。
做者: 守護窗明守護愛
出處: http://www.javashuo.com/article/p-semrlxnv-dm.html
本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出。若有問題,可郵件(1269619593@qq.com)諮詢.