Python3搭建Django框架淺析

前言

在這裏插入圖片描述
Python下有許多款不同的 Web 框架。Django是重量級選手中最有代表性的一位。許多成功的網站和APP都基於Django。

Django 是一個開放源代碼的 Web 應用框架,由 Python 寫成。Django 遵守 BSD 版權,初次發佈於 2005 年 7 月, 並於 2008 年 9 月發佈了第一個正式版本 1.0 。

使用 Django,只要很少的代碼,程序開發人員就可以輕鬆地完成一個正式網站所需要的大部分內容,並進一步開發出全功能的 Web 服務。

以下爲Django官方的描述:

Django is available open-source under the BSD license. We recommend using the latest version of Python 3. The last version to support Python 2.7 is Django 1.11 LTS.

Django 版本對應的 Python 版本:在這裏插入圖片描述
官方版本發佈計劃和策略:

See the supported versions policy for detailed guidelines about what fixes will be backported.
在這裏插入圖片描述

1. MVC 模型與MVT模型

Django 本身基於 MVC 模型,即 Model(模型)+ View(視圖)+ Controller(控制器)設計模式,MVC 模式使後續對程序的修改和擴展簡化,並且使程序某一部分的重複利用成爲可能。

MVC 優勢:

  • 低耦合
  • 開發快捷
  • 部署方便
  • 可重用性高
  • 維護成本低

Python加 Django 是快速開發、設計、部署網站的最佳組合。
特點:

  • 強大的數據庫功能
  • 自帶強大的後臺功能
  • 優雅的網址

1.1 MVC 模式

MVC設計模式:Model-View-Controller簡寫。
最早由TrygveReenskaug在1978年提出,是施樂帕羅奧多研究中心(Xerox PARC)在20世紀80年代爲程序語言Smalltalk發明的一種軟件設計模式,是爲了將傳統的輸入(input)、處理(processing)、輸出(output)任務運用到圖形化用戶交互模型中而設計的。隨着標準輸入輸出設備的出現,開發人員只需要將精力集中在業務邏輯的分析與實現上。後來被推薦爲Oracle旗下Sun公司Java EE平臺的設計模式,並且受到越來越多的使用ColdFusion和PHP的開發者的歡迎。現在雖然不再使用原來的分工方式,但是這種分工的思想被沿用下來,廣泛應用於軟件工程中,是一種典型並且應用廣泛的軟件架構模式。後來,MVC的思想被應用在了Web開發方面,被稱爲Web MVC框架。
MVC 模式(Model–view–controller)是軟件工程中的一種軟件架構模式,把軟件系統分爲三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。
MVC 以一種插件式的、松耦合的方式連接在一起。

  • 模型(M)- 編寫程序應用的功能(實現算法等等)、負責業務對象與數據庫的映射(ORM)。
  • 視圖(V)- 圖形界面,負責與用戶的交互(頁面)。
  • 控制器(C)- 負責轉發請求,對請求進行處理。

MVC框架的核心思想是:解耦,讓不同的代碼塊之間降低耦合,增強代碼的可擴展性和可移植性,實現向後兼容。
當前主流的開發語言如Java、PHP、Python中都有MVC框架。
在這裏插入圖片描述
簡易圖:
在這裏插入圖片描述
用戶操作流程圖:
在這裏插入圖片描述

1.2 MTV 模型

Django 的 MTV 模式本質上和 MVC 是一樣的,也是爲了各組件間保持松耦合關係,只是定義上有些許不同,Django 的 MTV 分別是指:

  • M 表示模型(Model):編寫程序應有的功能,負責業務對象與數據庫的映射(ORM)。
  • T 表示模板(Template):負責如何把頁面(html)展示給用戶。
  • V 表示視圖(View):負責業務邏輯,並在適當時候調用 Model和Template。

除了以上三層之外,還需要一個 URL 分發器,它的作用是將一個個 URL 的頁面請求分發給不同的 View 處理,View 再調用相應的 Model 和 Template,MTV 的響應模式如下所示:

簡易圖:
在這裏插入圖片描述
用戶操作流程圖:
在這裏插入圖片描述
解析:
用戶通過瀏覽器向我們的服務器發起一個請求(request),這個請求會去訪問視圖函數:

  • a.如果不涉及到數據調用,那麼這個時候視圖函數直接返回一個模板也就是一個網頁給用戶。
  • b.如果涉及到數據調用,那麼視圖函數調用模型,模型去數據庫查找數據,然後逐級返回。
  • c.視圖函數把返回的數據填充到模板中空格中,最後返回網頁給用戶。

2. 使用Django創建項目

Django框架搭建步驟如下。

2.1安裝Python

首先,你需要安裝Python環境,我本機是安裝的Python3.8.3。

2.2 安裝Django

(1)離線安裝
大家可以去官網下載,下載下來之後解壓縮,解壓後是一個Django的文件夾。
在這裏插入圖片描述
然後再cmd進入到解壓縮後的目錄,這個目錄下面有個setup.py文件
在這裏插入圖片描述然後在cmd上面輸入python setup.py install ,等待安裝即可。

安裝完成之後進行一個測試,看是否安Django成功,在cmd中輸入python 進入到python交互界面,然後import django回車,在輸入django.VERSION 會出現如下界面,表示你已經安裝Django成功。
在這裏插入圖片描述
(2)在線安裝

pip install Django==3.0.7

安裝完成之後可以根據上述方法測試Django是否安裝成功。

2.3 創建Django項目

在django中,項目的組織結構爲一個項目包含多個應用,一個應用對應一個業務模塊。

1.找到你的python工作空間,我平時是用的pycharm編輯器,這裏所說的工作空間是指編輯器一般項目的存放目錄,我的目錄爲:C:\Users\HP\PycharmProjects。
2.在cmd中進入到工作空間,然後輸入python django-admin.py startproject DjangoDemo。
3.如果提示找不到django-admin.py或者工作空間中沒有生成一個DjangoDemo文件夾,那麼證明你的環境有問題。
在這裏插入圖片描述
4.這時我們可以這樣操作,將django-admin.py的物理路徑寫上,django-admin.py 一般會在python安裝目錄的\Python38\Scripts文件夾下,把命令改成python D:\Python\Python38\Scripts\django-admin.py startproject DjangoDemo,再執行一次應該就OK了,我這裏下載的django的django-admin.py名稱爲django-admin-script.py。
在這裏插入圖片描述
5.執行成功之後的文件夾目錄結構如下:
在這裏插入圖片描述
圖中標紅的是後續創建的,以上這步不會自動生成。

manage.py是項目管理文件,通過它管理項目。
然後就是與項目同名的目錄,此處爲DjangoDemo。

  • init.py是一個空文件,作用是這個目錄可以被當作包使用。
  • asgi.py是項目的asgi配置文件。
  • settings.py是項目的整體配置文件。
  • urls.py是項目的URL配置文件。
  • wsgi.py是項目與WSGI兼容的Web服務器入口。

2.4 創建APP應用

使用一個應用開發一個業務模塊,此處創建應用名稱爲demoapp

1.創建APP應用,cmd進入到我們的項目工程文件夾下面(從上面可以看到有一個manage.py的python文件)然後在cmd中輸入python manage.py startapp demoapp 即可創建上圖中的demoapp文件,如下圖:
在這裏插入圖片描述

  • _init.py_是一個空文件,表示當前目錄demoapp可以當作一個python包使用。
  • tests.py文件用於開發測試用例,在實際開發中會有專門的測試人員,這個事情不需要我們來做。
  • models.py文件跟數據庫操作相關。
  • views.py文件跟接收瀏覽器請求,進行處理,返回頁面相關。
  • admin.py文件跟網站的後臺管理相關。
  • apps文件是django1.10之後增加的,通常裏面包含對應用的配置。

到這一步基本大家完成,現在來配置訪問路徑及頁面。

2.5 配置訪問路徑及頁面

應用創建成功後,需要安裝纔可以使用,也就是建立應用和項目之間的關聯,在djangodemosettings.py中INSTALLED_APPS下添加應用的名稱就可以完成安裝。
1.打開settings.py文件
①、更改INSTALLED_APPS,將上一步創建的app名字加到裏面
在這裏插入圖片描述
②、更改TEMPLATES,將我們創建的html頁面模板文件夾加入其中
在這裏插入圖片描述

2.6 編寫APP的views

demoapp中的views.py中代碼如下:


from django.shortcuts import render
from django.http import HttpResponse
import json
 
def Index(request):
    return render(request, 'index.html')
 
def getJson(request):
    resp = {'errorcode': 100, 'detail': 'Get success'}
    return HttpResponse(json.dumps(resp), content_type="application/json")
有兩個訪問接口,一個是跳轉頁面方法,一個是獲取json方法。

2.7 配置訪問映射

打開urls.py,代碼如下:

from django.urls import path
from demoapp import views
urlpatterns = [
    #path('admin/', admin.site.urls),
    path('index/',views.Index),
    path(r'json/',views.getJson),
]

2.8 編寫template模板文件

在我們創建的templates文件夾下面創建一個index.html頁面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <h1>this is index page</h1>
</body>
</html>

到此爲止已經全部配置完成,現在去啓動服務。

2.9 啓動服務

cmd進入到DjangoDemo文件家中輸入python manage.py runserver啓動服務,一般默認端口是8000

2.10 訪問頁面

在頁面輸入http://localhost:8000/index/
在這裏插入圖片描述
在頁面輸入http://localhost:8000/json/
在這裏插入圖片描述
到這也就搭建完成了,希望能幫助到你,有什麼問題大家可以評論或者關注留言,我們相互學習交流。

項目源碼gitHub地址:https://github.com/huxiangen/DjangoDemo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章