【django】1-1 django構建web程序的基礎知識

文章目錄

  • 1 構建web應用的基礎知識
    • 1.1 互聯網相關的概念
    • 1.2 互聯網協議
      • DNS(域名系統)
      • IP協議(互聯網絡協議)
      • TCP(傳輸控制協議)
      • HTTP(超文本傳輸協議)
      • SSL(安全套接字層)
      • TLS(傳輸層安全)
    • 1.3 URL
  • 2 web程序
    • 2.1 web程序的本質
    • 2.2 web框架的設計模式
      • 1.2.1 經典的MVC設計模式
      • 1.2.2 Django的MTV設計模式


1 構建web應用的基礎知識

1.1 互聯網相關的概念

互聯網:互聯網是連接大量計算機的全球性的網絡。這些計算機通過一系列標準協議進行數據交流。
協議:互聯網上的設備之間進行信息交換的標準。
服務器:服務器是存儲和管理數據,為其他計算機提供服務的計算機。
客戶端:客戶端是請求和接收服務器的數據的設備。
IP地址:接入互聯網的每臺設備都有自己的唯一IP地址,有兩種格式:IPv4和IPv6。
域名:互聯網上某臺計算機或計算機組的名稱,可讀性高,便于記憶。
數據包:數據包是在網絡中傳輸的信息的一小部分。由數據和數據頭組成,數據頭用來告知接收該數據包的機器如何處理數據包。

1.2 互聯網協議

DNS(域名系統)

DNS類似互聯網上的電話簿,用來進行域名和IP的轉換。

互聯網中提供DNS查詢的計算機稱為DNS服務器。客戶端訪問域名時,先向DNS服務器查詢域名對應的IP地址,然后再向IP地址發送請求。

IP協議(互聯網絡協議)

IP協議是互聯網的地址系統。IP協議把信息分割為一個個數據包,并在其中標記源設備和目標設備的IP地址,這樣網絡中的設備接收到數據包就知道要往哪里進行轉發。

IPv4和IPv6是IP協議的不同版本。
IPv4地址的格式是四組由點分隔的數字,如“192.168.0.2”,它由32位的二進制數記錄,因此IPv4可以提供約43億個唯一的IP地址。如今互聯網發展,連入的設備遠遠超過這個數目,因此開始使用IPv6地址。
IPv6地址由128位二進制數記錄,格式是冒號分隔的一組十六進制數。

目前仍舊有很大一部分設備使用IPv4地址,由于IPv4地址的有限供應,引入了動態IP。
動態IP是從IP地址池中為客戶端分配的臨時IP地址。一些大企業一般會付費維護一個靜態IP地址,但是大多數用戶使用動態IP就足夠了。

TCP(傳輸控制協議)

IP協議不負責數據包排序和錯誤檢查。為了確保信息傳輸的可靠性,一般把IP協議和TCP協議聯合起來使用。
TCP可以保持發送者和目標的連接,并確保數據順序。

HTTP(超文本傳輸協議)

HTTP使用超文本鏈接加載網頁信息,屬于應用層協議。
HTTP包括客戶端向服務端發送的請求,以及服務端返回的響應信息。

  • HTTP請求
    每個HTTP請求包含幾種信息:HTTP版本、URL、HTTP方法、請求頭、請求體。
    HTTP方法是此次請求希望服務器執行的動作。“GET”和“POST”是最常用的兩個方法。
    請求頭是鍵值對形式的文本信息,包含了客戶端的瀏覽器類型、請求什么數據等信息。
    請求體包含了此次請求提交給服務器的信息,如用戶名、密碼等表單信息。

  • HTTP響應
    HTTP響應包括:HTTP狀態碼、響應頭和可選的響應體。
    HTTP狀態碼是表示HTTP請求是否成功的3位數字。可以通過狀態碼的第一個數字判斷此次請求的狀況:1xx表示信息,2xx表示成功,3xx表示重定向,4xx表示客戶端錯誤,5xx表示服務器錯誤。
    響應頭包含響應體中數據的語言和格式等信息。
    響應體包含此次請求取到的信息。大多是HTML數據。

SSL(安全套接字層)

SSL是一種加密安全協議,是TLS協議的前身。
Web上的數據最開始是明文傳輸的,任何人都可以截獲并讀取信息。創建SSL是為了糾正這個錯誤并保護用戶隱私。

SSL的作用
數據加密:對Web傳輸的數據進行加密,任何截獲此數據的人只會看到亂碼。
身份驗證:在兩個通信設備之間啟用身份驗證,確保兩個設備是它們所聲稱的真實身份。
數據簽名:對數據進行數字簽名,確保數據的完整性和一致性。

TLS(傳輸層安全)

TLS是網絡上使用的最新的加密協議。
由于它和SSL聯系緊密,因此TLS經常被稱為“SSL加密”。

HTTPS使用TLS來加密普通的HTTP請求和響應,使其更安全。
客戶端與服務器建立HTTP連接需要進行多次往返。除了TCP握手外,還必須進行TLS/SSL握手以使用HTTPS。

1.3 URL

URL即統一資源定位符,表示互聯網上某個資源的地址。每個資源都有一個唯一的URL,其中的信息指出了文件的位置和瀏覽器該怎么處理它。

URL語法格式:

protocol://hostname[:port]/path[?query][#fragment]
  • protocol:網絡傳輸協議,常見的有http,https,file,ftp。
  • hostname,資源所在的服務器的域名、主機名或IP地址。
  • port,端口號,范圍0-65535。可省略,省略時會使用各種傳輸協議的默認端口號。
  • path,路由地址,一般表示主機上的目錄或文件地址。
  • query,查詢字符串,從?開始到#結束,包含多個參數,使用&隔開。
  • fragment,信息片段,用于定位網頁上的信息。

一些特殊符號無法在URL中使用,這時會用該符號的ASCII編碼值。


2 web程序

2.1 web程序的本質

  1. 接收客戶端的請求。
  2. 解析請求,處理數據。
  3. 構造響應返回。

2.2 web框架的設計模式

1.2.1 經典的MVC設計模式

Model:數據存儲層,表的定義和數據增刪改查。
View:視圖層,系統的前端輸出,允許用戶交互。
Controller:控制層,接收用戶輸入并調用Model和View完成需求。

基本請求流程:

  1. 用戶瀏覽器向服務器發起request請求,Controller接收到請求,同時向Model和View發指令;
  2. Model根據指令選取業務數據,發送給 Controller;
    View根據指令加載對應頁面,發送給Controller;
  3. Controller收到二者返回的數據,組織成響應格式發給瀏覽器。

MVC模式的優點:降低代碼耦合度,增加模塊重用性。

1.2.2 Django的MTV設計模式

Model:數據存儲層。
Template:模板層,處理頁面顯示。
View:業務邏輯層,處理業務邏輯。
MVC的V層,在這里被細分為Template和View層。

基本請求流程:

  1. 用戶瀏覽器發起request請求,服務器收到后,通過View層分析后,同時向Model和Template發指令;
  2. Model層取數據返回給View;
  3. Template層調用對應的模板返回給View;
  4. View層收到后,把數據填到模板中,組織為響應格式發給瀏覽器。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73519.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73519.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73519.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【智能體】從一個聊天工作流了解LangGraph

1. 前言 這篇文章將從如何搭建一個帶網絡搜索功能的聊天機器人工作流,帶你初步了解 LangGraph。 2. 前提條件 已搭建 Python 開發環境,使用 3.11 以上版本。 已熟悉 Python 基礎語法。可參考:【LLM】Python 基礎語法_llm python入門-CSDN博…

JAVA開發:實例成員與靜態成員

判斷Java中的實例成員與靜態成員 在Java中,可以通過以下幾種方式判斷一個成員是實例成員還是靜態成員: 1. 通過聲明方式判斷 靜態成員使用static關鍵字修飾,實例成員不使用: public class MyClass {// 實例成員int instanceVa…

Softmax 回歸 + 損失函數 + 圖片分類數據集

Softmax 回歸 softmax 回歸是機器學習另外一個非常經典且重要的模型,是一個分類問題。 下面先解釋一下分類和回歸的區別: 簡單來說,分類問題從回歸的單輸出變成了多輸出,輸出的個數等于類別的個數。 實際上,對于分…

MySQL-存儲過程

介紹 基本語法 創建 調用 查看 刪除 變量 系統變量 查看 設置 用戶定義變量 賦值 使用 局部變量 聲明 賦值 流程控制 參數 條件結構 IF case 循環結構 while repeat loop 游標 條件處理程序 介紹 舉個簡單的例子,我們先select某數據&…

使用 Go 和 Gin 實現高可用負載均衡代理服務器

前言 在現代分布式系統中,負載均衡是保障服務高可用性和性能的核心技術。本文將基于 Go 語言和 Gin 框架實現一個支持動態路由、健康檢查、會話保持等特性的企業級負載均衡代理服務器,并提供完整的壓力測試方案和優化建議。 通過本方案實現的負載均衡代理具備以下優勢: 單…

在 Linux(Ubuntu / CentOS 7)上快速搭建我的世界 MineCraft 服務器,并實現遠程聯機,詳細教程

Linux 部署 MineCraft 服務器 詳細教程(丐版,無需云服務器) 一、虛擬機 Ubuntu 部署二、下載 Minecraft 服務端三、安裝 JRE 21四、安裝 MCS manager 面板五、搭建服務器六、本地測試連接七、下載櫻花,實現內網穿透,邀…

批量取消 PDF 文檔中的所有超鏈接

在 PDF 文檔中我們可以插入各種各樣的文本也可以給文本設置字體,顏色等多種樣式,同時還可以給文字或者圖片添加上超鏈接,當我們點擊超鏈接之后,就會跳轉到對應的網頁。有時候這會對我們的閱讀或者使用形成一定的干擾,今…

Ubuntu xinference部署本地模型bge-large-zh-v1.5、bge-reranker-v2-m3

bge-large-zh-v1.5 下載模型到指定路徑: modelscope download --model BAAI/bge-large-zh-v1.5 --local_dir ./bge-large-zh-v1.5自定義 embedding 模型,custom-bge-large-zh-v1.5.json: {"model_name": "custom-bge-large…

Vue的實例

Every Vue application starts with a single Vue component instance as the application root. Any other Vue component created in the same application needs to be nested inside this root component. 每個 Vue 應用都以一個 Vue 組件實例作為應用的根開始。在同一個應…

Linux學習筆記(應用篇三)

基于I.MX6ULL-MINI開發板 LED學習GPIO應用編程輸入設備 開發板中所有的設備(對象)都會在/sys/devices 體現出來,是 sysfs 文件系統中最重要的目錄結構 /sys下的子目錄說明/sys/devices這是系統中所有設備存放的目錄,也就是系統中…

【圖論】網絡流算法入門

(決定狠狠加訓圖論了,從一直想學但沒啟動的網絡流算法開始。) 網絡流問題 ? 問題定義:在帶權有向圖 G ( V , E ) G(V, E) G(V,E) 中,每條邊 e ( u , v ) e(u, v) e(u,v) 有容量 c ( u , v ) c(u, v) c(u,v)&am…

遞歸、搜索與回溯第四講:floodfill算法

遞歸、搜索與回溯第四講:floodfill算法 1.Floodfill算法介紹2.圖像渲染3.島嶼數量4.島嶼的最大面積5.被圍繞的區域6.太平洋大西洋水流問題7.掃雷游戲8.衣櫥整理 1.Floodfill算法介紹 2.圖像渲染 3.島嶼數量 4.島嶼的最大面積 5.被圍繞的區域 6.太平洋大西洋水流問題…

【深度學習與實戰】2.3、線性回歸模型與梯度下降法先導案例--最小二乘法(向量形式求解)

為了求解損失函數 對 的導數,并利用最小二乘法向量形式求解 的值? 這是?線性回歸?的平方誤差損失函數,目標是最小化預測值 與真實值 之間的差距。 ?損失函數?: 考慮多個樣本的情況,損失函數為所有樣本的平方誤差之和&a…

氣象可視化衛星云圖的方式:方法與架構詳解

氣象衛星云圖是氣象預報和氣候研究的重要數據來源。通過可視化技術,我們可以將衛星云圖數據轉化為直觀的圖像或動畫,幫助用戶更好地理解氣象變化。本文將詳細介紹衛星云圖可視化的方法、架構和代碼實現。 一、衛星云圖可視化方法 1. 數據獲取與預處理 衛星云圖數據通常來源…

瀏覽器渲染原理與優化詳解

一、瀏覽器渲染基礎原理 瀏覽器渲染流程主要包括以下步驟(也稱為"關鍵渲染路徑"): 構建DOM樹:將HTML解析為DOM(文檔對象模型)樹構建CSSOM樹:將CSS解析為CSSOM(CSS對象模…

基于Spring Boot的成績管理系統后臺實現

下面是一個完整的成績管理系統后臺實現,使用Spring Boot框架,包含學生管理、課程管理和成績管理功能。 1. 項目結構 src/main/java/com/example/grademanagement/ ├── config/ # 配置類 ├── controller/ # 控制器 ├── dto/ …

實現極限網關(INFINI Gateway)配置動態加載

還在停機更新 Gateway 配置,OUT 了。 今天和大家分享一個 Gateway 的功能:動態加載配置(也稱熱更新或熱加載)。 這個功能可以在 Gateway 不停機的情況下更新配置并使之生效。 配置樣例如下: path.data: data path.…

Mean Shift 圖像分割與 Canny 邊緣檢測教程

1. Mean Shift 簡介 Mean Shift 是一種聚類算法,通過尋找圖像中顏色相似的區域來實現分割。它非常適合用于場景分割或物體檢測等任務。本教程將它與 Canny 邊緣檢測結合,突出分割區域的邊界。 2. 圖像分割流程 我們將按照以下步驟完成圖像分割和邊緣檢…

Day15 -實例 端口掃描工具 WAF識別工具的使用

一、端口掃描工具 1、zenmap 我這里user是漢字名,沒有解析成功。等后續換一個英文賬戶試一試。 魔改kali的nmap nmap -p8000-9000 8.140.159.19 2、masscan cmd啟動,拖入exe文件。然后先寫ip,會報錯給提示 尋路犬系統 我們去找一下他的…

如何解決高并發場景下的性能瓶頸?實踐分享

解決高并發性能瓶頸的核心方法包括優化系統架構、合理使用緩存技術、數據庫優化及擴展策略、負載均衡設計。 其中,優化系統架構是根本解決性能問題的關鍵所在。良好的系統架構能夠有效支撐業務高效穩定運行,避免性能瓶頸帶來的損失。企業可通過微服務架構…