django1 web開發基礎知識

2022-08-15 19:33:16 字數 3396 閱讀 1337

1.http概述

當前版本:1.1

http協議是乙個客戶端和服務端請求應答的標準tcp,如瀏覽器作為客戶端傳送請求到伺服器指定埠 ,伺服器將內容返回給伺服器

2.協議格式

http定義了客戶端與服務端資料互動的協議

request客戶端向服務端傳送請求報文 ,包括請求行(請求方法 空格 url 空格 協議版本 回車符換行符) ,請求頭(key:value 回車符換行符 key:value 回車符換行符*2),請求資料

####乙個request請求(get沒有請求資料,攜帶在url上)

b''

response服務端響應客戶端資料 ,包括狀態行(協議版本 空格 狀態碼 空格 狀態碼描述 回車符換行符),響應頭(key:value 回車符換行符:value 回車符換行符*2),響應資料

請求頭中一般有瀏覽器資訊,cookie

響應頭中一般有編碼,時間

3.建立最簡單的http服務端

import

socket

ser1 =socket.socket()

ser1.bind((

'127.0.0.1

',8888))

ser1.listen(5)

while 1:

conn.addr =ser1.accept()

data = conn.recv(1024)

print(data) #

請求request資料

conn.send(b'http/1.1 200 ok\r\ncontent-type: text/html;charset=utf-8\r\n\r\n')  #響應資料http協議

conn.send(''.encode('utf-8'))    #資料

conn.close()

ser1.close()

4.動態頁面與靜態頁面

動態頁面就是與後端互動獲取資料展示頁面 ,靜態頁面就是展示頁面不能互動

5.伺服器程式與應用程式

伺服器程式完成了socket的連線的部分 ,但是它不關心業務邏輯**處理連線請求

應用程式完成了業務邏輯相關** django框架完成這部分,返回什麼頁面 ,不考慮如何與客戶端連線

問題:伺服器程式與應用程式之間如何互動規則 ,wsgi伺服器閘道器介面(生產的uwsgi ,django預設使用了wsgiref))

nginx+uwsgi+django

6.python的其他框架

django完成了業務邏輯**+動態頁面返回 

flask完成了業務邏輯**

tornado完成了伺服器程式+業務邏輯**+返回動態頁面

7.軟體設計架構模式

1)mvc框架

controller+model+view

控制器:業務邏輯 ,訪問位址 ,執行函式

模型: 資料庫模型避免sql

檢視: 展示的動態頁面

2)mtv框架

django根據mvc重新設計了一下model+templates+view

模型: orm資料庫物件關係模型

模板: 負責展示給使用者的頁面

檢視: 負責業務邏輯

額外的: url路由分發器

二者比較:

mvc可以說是廣義 ,控制器對應mtv的檢視函式與路由 ,檢視對應模板 ,模型一直

8.django中的request與reponse物件

request請求物件是檢視函式中的必要引數 ,物件封裝了本次請求的http協議中的所有相關資訊

request.method          #請求型別, 在cbv中dispatch方法會將該型別與已知列表匹配 ,反射獲取我們自定義的方法執行

request.get.get('關鍵字')       #從get請求中獲取引數 ,可以獲取url中?後面的引數

request.get.urlencode()      #獲取get請求上的引數 ,並進行編碼

request.post.get('關鍵字')     #從post請求中獲取表單中的內容值 ,表單中提交的內容可以根據這個方法獲取

request.path_info          #獲取請求路徑資訊 ,不包含位址埠 ,?後的引數

request.body            #請求體 ,僅post請求有 ,有明文的請求資料

request.scheme          #本次請求協議 http https

request.encoding           #獲取提交資料的編碼方式

request.cookies         #獲取cookies

request.session           #獲取session資訊

request.files           #用於上傳檔案 ,需要放入form表單中 且enctype="multipart/form-data"   

response響應的幾種方式

httpresponse('字串')       #可以直接返回html標籤 或字串

render(request ,'模板檔名' ,)  #返回模板頁面 ,還可以返回request物件和引數給模板檔名

redirect(重定向)           #重定向到其他url

jsonresponse(data,safe=false)                       #將資料轉為json型別返回 ,如果資料是字典可以不加safe=false

9.檔案上傳簡例

上傳完成')

####html模板

django 基礎 1 web框架原理

web 框架原理 1.內容回顧 1.課前練習題 2.前面內容複習 1.mysql 1.sql語句 2.設計表的能力 3.原理 2.前端 1.html css js 2.jquery 3.bootstrap 3.併發程式設計 1.程序 2.執行緒 3.協程 4.io多路復用 4.網路程式設計 1.so...

Web開發 Django基礎建立工程Day2

在使用flask框架時,專案工程目錄的組織與建立是需要我們自己手動建立完成的。在django中,專案工程目錄可以借助django提供的命令幫助我們建立。建立工程的命令為 django admin startproject 工程名稱例如 想要在桌面的code目錄中建立乙個名為demo的專案工程,可執行...

Python進行web開發 django

使用dows命令操作網路頁面 步驟如下 1.先在某磁碟下建立乙個新的資料夾web 資料夾名,任意取名 web資料夾下再新建乙個blog資料夾 任意取名 2.根據idea軟體開發工具中儲存python的project sdk的路徑找到django admin.exe ps python的安裝路徑一定要...