Django框架HttpRequest物件

2021-10-21 21:45:57 字數 1886 閱讀 2269

利用http協議向伺服器傳參有幾種途徑:

1.提取url的特定部分,如/film/zhangsan/20/,可以在伺服器端的路由中用正規表示式擷取;

2.查詢字串(query string),形如key1=value&key2=value2;

3.請求體(body) 中傳送的資料,比如表單元素、json、xml;

4.在http報文的頭中

1.如果想從url中獲取值,需要在正規表示式中使用分組,

2.獲取值分為兩種方式

位置引數:引數的位置不能錯

關鍵字引數:引數的位置可以變,跟關係字保持一致即可

注意:兩種引數的方式不要混合使用,在乙個正規表示式中只能使用一種引數方式

"引數1的值為,引數2的值為"

.format

(par1,par2)

)結果:

引數1的值為12580,引數2的值為號碼百事通
關鍵字引數:

re_path("^getdata/(?p\w+)/(?p\d+)/$",filter)

httprequest物件的屬性get、post都是querydict型別的物件

與 python字典不同,querydict型別的物件用來處理同乙個鍵帶有多個值的情況

方法get():根據鍵獲取值

1.如果乙個鍵同時擁有多個值將獲取最後乙個值

2.如果鍵不存在則返回none,可以設定預設值進行後續處理

3.get(「鍵」,預設值)

方法getlist():根據鍵獲取值,值以列表返回,可以獲取指定鍵的所有值

1.如果鍵不存在則返回空列表,可以設定預設值進行後續處理

2.getlist(「鍵」,預設值)

獲取請求路徑中的查詢字串引數(形如?k1=v1&k2=v2),可以通過request.get

屬性獲取,返回querydict物件。

請求體資料格式不固定,可以是表單型別字串,可以是 josn字串,可以是xml字串,應區別對待。

可以傳送請求體資料的請求方式有post、put、patch、delete。

django預設開啟csrf防護,會對上述請求方式進行防護驗證,在測試時可以關閉csrf防護機制,方法為setting.py檔案中注釋掉csrf中介軟體。

4.1表單型別fromdata

前端傳送的表單型別的請求體資料,可以通過request.post屬性來獲取,會返回乙個querydict物件。

4.2非表單型別non-form data

非表單型別的請求體資料,django無法自動解析,可以通過request.body屬性獲取最原始的請求體資料,自己按照請求體格式進行(json、xml等)解析。

可以通過request.meta屬性獲取請求頭headers中的資料,request.meta為字典型別

1.method:乙個字串,表示請求使用的http方法,常用值包括:「get」,「post」。

2.user:請求的使用者物件。

3.path:乙個字串,表示請求的頁面的完整路徑,不包含網域名稱和引數部分。

4.encoding:乙個字串,表示提交的資料的編碼方式。

1)如果為none則表示使用瀏覽器的預設設定,一般為utf-8

2)這個屬性是可寫的,可以通過修改它來修改訪問表單資料使用的編碼,接下來對屬性的任何訪問將使用新的encoding值

5.files:乙個類似字典的物件,包含所有的上傳檔案。

Django 框架 Django介紹

django 使用 python 語言寫的開源 web 開發框架,並遵循 mvc 設計。勞倫斯出版集團為了開發以新聞內容為主的 而開發出來了這個框架。django 今年來應用越來越廣泛。django 的主要目的是簡便 快速的開發資料庫驅動的 它強調 復用,多個元件可以很方便的以 外掛程式 形式服務於...

初試django框架

安裝django 當前安裝的版本是1.10.5 pip install django 新建乙個名為mysite的專案 django admin.py startproject mysite 進入mysite目錄,結構如下 mysite manage.py mysite settings.py url...

django框架基礎

djang 是用python 語言寫的開源 web開發框架,並遵循 mvc設計 並且django 有乙個專有名詞 mvtm 全拼為model 功能是負責資料處理,內嵌了 orm框架 v全拼為 view 功能是接收 業務處理,返回 t全拼為 template 功能是負責封裝構造要返回的 html 內嵌...