Python框架篇之Django(Django項目搭建全過程、Web框架與Django)

一、Web框架與Django本質

1、Web框架的理解
框架,特指爲解決一個開放性問題而設計的具有一定約束性的支撐結構,使用框架可以幫你快速開發特定的系統。對於所有的Web應用,實際上就是一個socket服務端,用戶的瀏覽器其實就是一個socket客戶端。

2、Django的本質
Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MTV的框架模式,即模型M,視圖V和模版T。簡單來說,就是Django給我們提供了一個非常完善的Web框架,是目前Python搭建項目最好用的框架。我們只需要對其中的文件進行修改與增加內容,就能輕鬆實現請求與響應的基本功能,最終渲染出對應的網頁。

3、MVC模式
MVC就是把web應用分爲模型(M),控制器©,視圖(V)三層;他們之間以一種插件似的,鬆耦合的方式連接在一起。模型負責業務對象與數據庫的對象(ORM),視圖負責與用戶的交互(頁面),控制器©接受用戶的輸入調用模型和視圖完成用戶的請求。

4、MTV模式
MTV模式本質上與MVC模式沒有什麼差別,也是各組件之間爲了保持鬆耦合關係,只是定義上有些許不同:

  • Model(模型):負責業務對象與數據庫的對象(ORM)
  • Template(模版):負責如何把頁面展示給用戶
  • View(視圖):負責業務邏輯,並在適當的時候調用Model和Template
    另外還有一個路由分發器,即url分發器,它能將一個個URL的頁面請求分發給不同的view處理,view再調用相應的Model和Template。
  • URL(路由分發):負責分發鏈接並綁定對應函數的

5、Django的框架
15
圖片引自:老男孩python運維開發資料

二、從安裝到實現一個完整的Django項目

1、Django的安裝
在cmd命令行窗口中,進入Python的安裝目錄,再進入目錄Scripts,然後的輸入pip install django
1

2、創建一個Django項目
依然是在命令行窗口中,先cd進入你需要創建項目的目錄中或者Django的bin目錄中,再輸入django-admin startproject 項目名,就可以創建一個Django項目了
2
創建完一個項目之後,相當於有了一個框架,但是我還需要創建一個應用或者多個,每一個應用就是一個功能,比如QQ有聊天功能,還有瀏覽空間的功能。manage.py startapp 項目名,比如我輸入

manage.py startapp blog

3

  • manage.py文件:就是整個項目的執行文件

在我們創建的這個blog應用裏面,有其中幾個重要文件對應的功能是:
4
另外,mysite目錄是一個全局作用的,在裏面有
6

  • urls.py文件:路由分發功能的實現
  • settings.py文件:存放於該Django項目相關的所有配置信息

在settings.py裏面我們需要將自定義的應用也添加進去:
5
3、在pycharm中創建Django項目
7
在pycharm中創建完一個項目之後,假如我們要實現一個進入自定義的一個網址,服務端就會返回一個準確的時間。首先我們在urls.py文件裏添加上這個路徑並綁定應用函數:
8
然後我們在創建的應用文件夾裏的views.py文件裏寫上我們的顯示時間的函數:
9

然後我們需要導入views.py文件,才能調用那個顯示時間的應用函數:
10
4、返回一個時間
templates:用來存放頁面(html文件)的目錄
11
返回頁面需要帶上形參:

return render(req,"index.html")

在html文件中兩個大括號渲染的變量,在python中定義同名的變量,然後可以用locals()直接引用:

# html文件中
<h2>Now:{{ t }}</h2>
# python文件中
t=time.ctime()
return render(req,"index.html",locals())

5、啓動Django項目
runserver:啓動Django項目(在終端中輸入)
12
然後就會返回一個網址,這個就是我們訪問的主頁:
13

6、Django項目效果
14
這樣,一個最簡單卻很完整的Django項目就完成了

7、views.py代碼

from django.shortcuts import render,HttpResponse
# 還必須導入HttpResponse模塊,纔可以將python定義的內容返回給前端去顯示
import time

# Create your views here.

# 這個req形參是瀏覽器發送給服務端的全部信息,服務端打包後傳入到該函數的一個對象
def show_time(req):
    # return HttpResponse("Welcome to my blog!")
    t=time.ctime()
    return render(req,"index.html",locals())

可以看到在整個網頁的形成與渲染過程中,應用函數show_time僅僅只用了3行代碼就實現了,可以說Django是非常得高效與便捷

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