菜鳥初識python request屬性及方法說明

2022-03-05 05:45:43 字數 2857 閱讀 3972

if  request.request.has_key('鍵值'):

httprequest物件的屬性

參考:表 h-1. httprequest物件的屬性

屬性描述

path

表示提交請求頁面完整位址的字串,不包括網域名稱,如"/music/bands/the_beatles/"。

method

表示提交請求使用的http方法。它總是大寫的。例如:

if request.method == 'get':

do_something()

elif request.method == 'post':

do_something_else()

get乙個類字典物件,包含所有的http的get引數的資訊。見 querydict文件。

post

乙個類字典物件,包含所有的http的post引數的資訊。見 querydict文件。

通過post提交的請求有可能包含乙個空的 post字典,也就是說, 乙個通過post方法提交的表單可能不包含資料。因此,不應該使用ifrequest.post 來判斷post方法的使用,而是使用 if request.method == "post" (見表中的 method 條目)。

注意: post 並不 包含檔案上傳資訊。見 files。

request

為了方便而建立,這是乙個類字典物件,先搜尋 post ,再搜尋 get 。 靈感來自於php的 $_reqeust 。

例如, 若 get = , post =  ,request["name"] 會是 "john" , request["age"] 會是 "34" 。

強烈建議使用 get 和 post,而不是 request 。這是為了向前相容和更清楚的表示。

cookies

乙個標準的python字典,包含所有cookie。鍵和值都是字串。cookie使用的更多資訊見第12章。

files

乙個類字典物件,包含所有上傳的檔案。 files 的鍵來自 中的 name。 files 的值是乙個標準的python字典,包含以下三個鍵:

filename :字串,表示上傳檔案的檔名。

content-type :上傳檔案的內容型別。

content :上傳檔案的原始內容。

注意 files 只在請求的方法是 post,並且提交的 包含enctype="multipart/form-data"時才包含資料。否則, files 只是乙個空的類字典物件。

meta

乙個標準的python字典,包含所有有效的http頭資訊。有效的頭資訊與客戶端和伺服器有關。這裡有幾個例子:

content_length: 指定包含於請求或響應中資料的位元組長度。

content_type:標明傳送或者接收的實體的mime型別。

query_string :未解析的原始請求字串。

remote_host :客戶端主機名。

server_name :伺服器主機名。

server_port :伺服器端口號。

在 meta 中有效的任一http頭資訊都是帶有 http_字首的鍵,例如:

http_accept_encoding :定義客戶端可以理解的編碼機制。

http_accept_language :定義客戶端樂於接受的自然語言列表。

http_host :客戶端傳送的 host 頭資訊。

http_referer :被指向的頁面,如果存在的。

http_user_agent :客戶端的user-agent字串。

http_x_bender : x-bender 頭資訊的值,如果已設的話。

user

乙個 django.contrib.auth.models.user 物件表示當前登入使用者。 若當前使用者尚未登入, user 會設為 django.contrib.auth.models.anonymoususer 的乙個例項。可以將它們與 is_authenticated() 區別開:

if request.user.is_authenticated():

# do something for logged-in users.

else:

# do something for anonymous users.

user 僅當django啟用 authenticationmiddleware時有效。

關於認證和使用者的完整細節,見第12章。

session

乙個可讀寫的類字典物件,表示當前session。僅當django已啟用session支援時有效。見第12章。

raw_post_data

post的原始資料。 用於對資料的複雜處理。

request物件同樣包含了一些有用的方法,見表h-2。

表 h-2. httprequest 的方法

方法描述

__getitem__(key)

請求所給鍵的get/post值,先查詢post,然後是get。若鍵不存在,則引發異常 keyerror。

該方法使使用者可以以訪問字典的方式來訪問乙個 httprequest例項。

例如, request["foo"] 和先檢查 request.post["foo"] 再檢查request.get["foo"] 一樣。

has_key()

返回 true 或 false,標識 request.get 或 request.post 是否包含所給的鍵。

get_full_path()

返回 path ,若請求字串有效,則附加於其後。例如,"/music/bands/the_beatles/?print=true"。

is_secure()

如果請求是安全的,則返回 true 。也就是說,請求是以https的形式提交的。

原文出處:

菜鳥python 編碼初識

ascii 256 1位元組不支援中文 gbk 國標 0101 你 0111 好 英文 1位元組 中文 2位元組 萬國碼 unicode 中文和英文4個位元組 1位元組 8位 utf 8 最流行的編碼集 密碼本 英文 1 歐洲 2 亞洲 3 win 編碼gbk linux 編碼utf 8 mac 編...

zookeeper集群搭建(菜鳥初識)

首先需要三個虛擬機器,其中一台上有你已經配置好的zookeeper,配置完啟動在配置檔案中修改的datedir的目錄就會自動建立,承接我上乙個文章,datedir建立目錄為 data zookeeper data。將配置好的zookeeper傳到另外兩個虛擬機器 1.在另外兩個虛擬機器中建立和這個虛...

菜鳥初識技術篇 Docker

下面來繼續講講docker的一些個人見解,對於docker這個東西,在網上的說法很多,有人說是容器工具,也有人說是貨櫃什麼的,不同的人都有不同的看法,其實他們說得都對。在我個人認為的話,其實docker就跟虛擬機器是類似的乙個東西,我甚至懷疑它的前世就是虛擬機器,也是一種虛擬化的東西,下面不再 其中...