1. 程式人生 > >Django:(01) 關於什麼是Django?

Django:(01) 關於什麼是Django?

 

一、從 WSGI 開始瞭解 Django

  在瞭解 Django 之前有必要先了解一下 Python 被用於 Web 開發的基礎協議——WSGI

  在開發 web 應用時,我們不希望接觸到TCP連線、HTTP原始請求和響應格式等一系列麻煩的事情,我們只想專心用 Python 編寫 Web 業務,我們該怎麼做?

  我們需要把這些底層的麻煩事封裝成一個統一的介面。這個現成的介面就是WSGI:Web Server Gateway Interface。

  WSGI介面定義非常簡單,我們只需要實現 application()函式,它接收兩個引數:

  第一個引數接收包含所有 HTTP 請求資訊的 dict 物件;

  第二個引數是一個函式物件,用於傳送了HTTP 響應的 Header,在 application() 函式內部它只能被呼叫一次,並且在呼叫時要傳入兩個引數:一個是 HTTP 響應碼,一個是一組 list 表示的 HTTP Header,每個 Header 用一個包含兩個特定的字串的 tuple 表示。

  下面是一個最迷你的 Python 應用:

# hello.py
def
application(environ, start_response): start_response(
'200 OK', [('Content-Type', 'text/html')]) return ['Hello, web!']

  那麼,怎麼讓它執行起來呢?

  我們需要啟動 WSGI 伺服器來呼叫(載入)application() 函式。

  於是,我們需要另外編寫一個檔案來啟動 WSGI 服務:

  

# server.py

from wsgiref.simple_server import make_server

from hello import application

# 建立一個伺服器物件
httpd = make_server('
127.0.0.1', 8000, application) # 監聽HTTP請求: httpd.serve_forever()

 

  執行 server.py 檔案,然後就可以在瀏覽器通過IP和埠訪問我們的 mini Web 應用了。
  基於這樣的一個應用我們當然可以拓展成更復雜的 Web 應用,但是到最後我們會發現,我們依然在不停地重複的造輪子。

  天才的程式設計師會很自然地在 WSGI 之上再抽象出一些框架來簡化我們的 Web 開發——Django 就是其中之一。

 

  ps:我們要執行用 Django 框架開發出來的 Web 應用,使用的是 uWSGI 而不是上面簡單的 server.py

uWSGI,是一個程式,充當Web伺服器或中介軟體。
  如果架構是Nginx+uWSGI+APP,uWSGI是一箇中間件
  如果架構是uWSGI+APP,uWSGI是一個伺服器

 

二、Django概述的概述

  1. Django的主要目的是簡便、快速的開發資料庫驅動的網站;
  2. Django強調程式碼複用和快速開發,具有很強的可擴充套件性
  3. Django有許多功能強大的第三方外掛,多個元件可以很方便的以"外掛"形式服務於整個框架;
  4. Django MVT模式:Model,View,Template (Django的 MVT 與通常Web開發中的 MVC 沒有本質區別)
  5. 重量級框架,Django原生提供了眾多的功能元件,讓開發更簡便快速:
資料庫ORM支援
模板
表單
認證許可權
Admin管理站點
session機制
快取

 

三、專案中的Django應用

 

  • django 自帶了一個純 python 編寫的開發階段使用的 web 伺服器,用來預覽網站效果和進行開發除錯。
  • 一般產品上線才使用 uWSGI(伺服器) 或者 uWSGI(中介軟體)+Nginx。

  現在我們想建立一個 Django 應用,我們該從哪裡開始呢?

 

  1. 首先,需要考慮虛擬環境

  

    (1)建立虛擬環境(聯網)

mkvirtualenv django_py3 -p python3

    (2)在虛擬環境中安裝 Django

pip install django==1.11.11

    (3)相關命令

點開檢視相關命令

  

  2、建立專案(兩種方式)

    (1)通過 pycharm 建立(推薦)

 

 

    (2)通過命令列建立

      - 先進入虛擬環境:

workon 虛擬環境名

 

      - 建立Django專案:

django-admin startproject 專案名

 

       - 進入上一步創建出來的專案檔案根目錄下:

 cd 專案根目錄

      

      - 建立 templates 模板目錄(需要手動配置setting.py配置項)

 

      - 建立應用:

 # manage.py 為上述建立專案時自動生成的管理檔案
 python manage.py startapp 應用名

      

 

   3、執行測試伺服器(兩種方式)

    (1)通過命令列執行

# 可以不寫IP和埠,預設IP是127.0.0.1,預設埠為8000
python manage.py runserver ip:埠

    (2)通過Pycharm執行

      - 點選執行按鈕

 

    - 可以手動指定伺服器執行的ip和埠,不指定預設值為: 127.0.0.1:8000

 

 

   4、測試伺服器能否訪問

    在瀏覽器輸入上一步設定的IP和埠號,例如預設的:127.0.0.1:8000

 

  到這裡一個 Hello world 級別的原生 Django 專案算是搭建起來了。下一步就是配置了,但這屬於具體的細節,不在本文主題範圍內。

   本文旨在讓我們對 Django 有一個由抽象到具象的整體認識。

  下一篇,我們會把目光聚焦在Django應用內部的配置,以及具體的業務操作上。

 END

 

參考:

https://www.djangoproject.com/

https://djangobook.com/

https://yiyibooks.cn/xx/Django_1.11.6/intro/overview.html

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432012393132788f71e0edad4676a3f76ac7776f3a16000

https://www.cnblogs.com/Xjng/p/aa4dd23918359c6414d54e4b972e9081.html