Django request各種操作

2021-09-29 09:25:02 字數 2828 閱讀 9357

根據請求的資訊獲取base url(有時候服務的網域名稱比較多,還是需要動態的拼接一下url資訊)

# url 

request.get_host() # wificdn.com:8888

request.get_full_path() # u'/wxpay/qrcode2/16122010404238801544?name=lzz'

request.build_absolute_uri('/') # ''

request.build_absolute_uri('/hello') # 'hello'

request.build_absolute_uri() # ''

request.path # u'/wxpay/qrcode2/16122010404238801544'

request.scheme # 'http'

第二種方法獲取絕對路徑方法:

使用工具django-absoluteuri 1.2.0

安裝:pip install django-absoluteuri

reqeust物件中的基本屬性:

request.scheme --> 返回乙個字串,表示請求方案

request.body --> 返回乙個字串,表示原始http請求的正文

request.path --> 返回乙個字串,表示請求頁面的完整路徑,不包含網域名稱

reqeust.path_info --> path_info屬性始終包含路徑資訊部分,不論使用的web伺服器是什麼,使用它代替path可以讓**在測試和開發環境中更容易切換

requst.method --> 返回乙個字串,表示你請求使用的http方法,必須使用大寫

request.encoding --> 返回乙個字串,表示提交的資料的編碼方式,(如果為none,則表示使用default_charset設定),預設是utf-8,這個屬性是可寫的

request.get/post -->返回的是乙個類字典的物件,包含http get的所有引數/post的引數

request.cookies --> 返回乙個標準的字典,包含所有的cookie,鍵和值都是字串

request.files --> 乙個類似於字典的物件,包含所有的上傳檔案,files中的每一鍵為中的name,

files只有在請求的方法為post並且提交的form帶有enctype="multipart/form-data"的情況下才會包含資料,否則,file將為乙個空的類似於字典的物件

request.meta --> 返回乙個標準的字典,包含所有的http頭部

reqeust.user --> 返回乙個auth_user_model類

request.session --> 乙個既可讀又可寫的類字典物件,表示當前的會話,只有當django啟用會話的支援的時候才可用

reqeust.urlconf --> 不是由django 自身定義的,但是如果其它**(例如,自定義的中介軟體類)設定了它,django 就會讀取它。如果存在,它將用來作為當前的請求的root urlconf,

並覆蓋root_urlconf 設定

request.resolver_match --> 乙個resolvermatch 的例項,表示解析後的url。

這個屬性只有在url 解析方法之後才設定,這意味著它在所有的檢視中可以訪問,但是在在url 解析發生之前執行的中介軟體方法中不可以訪問(比如process_request,

但你可以使用process_view 代替)

request物件中的方法:

request.get_host():返回請求的主機,如果主機位於多個**的後面,那麼get_host()失效

request.get_full_path():返回path,如果可以將加上查詢字串

例子:"music/band/?print=true"

reqeust.build_absolute_uri(location):返回location的絕對url,如果location沒有提供,那麼設定為request.get_full_path(),如果uri已經是乙個絕對的uri,

將不會修改。否則,使用請求中的伺服器相關的變數構建絕對uri。

request.get_signed_cookie(key, default=raise_error, salt='', max_age=none)

返回簽名過的cookie 對應的值,如果簽名不再合法則返回django.core.signing.badsignature。如果提供default 引數,將不會引發異常並返回default 的值。

可選引數salt 可以用來對安全金鑰強力攻擊提供額外的保護。max_age 引數用於檢查cookie 對應的時間戳以確保cookie 的時間不會超過max_age 秒。

request.is_secure():如果請求是安全的,則返回true,也就是請求是通過https發起的

reqeust.is_ajax():如果請求是通過xmlhttprequest 發起的,則返回true

reqeust.read(size=none)

reqeust.readline()

reqeust.readlines()

reqeust.xreadlines()

reqeust.__iter__()

這幾個方法實現類檔案的介面用於讀取httprequest· 例項。這使得可以用流的方式讀取進來的請求。乙個常見的用例是使用迭代解析器處理大型xml有效載荷,而不在記憶體中構造乙個完整的xml樹。

各種「地」 各種「GND」

gnd,指的是電線接地端的簡寫。代表地線或0線。電路圖上和電路板上的gnd ground 代表地線或0線.gnd就是公共端的意思,也可以說是地,但這個地並不是真正意義上的地。是出於應用而假設的乙個地,對於電源來說,它就是乙個電源的負極。它與大地是不同的。有時候需要將它與大地連線,有時候也不需要,視具...

iOS 各種報錯,各種error

是因為修改了標頭檔案,新增了空格啊什麼的 llvm low level virtual machine 低階編譯器 需要把note 後面提示要刪的指定的路徑檔案在finder中找到並完全刪除 如果是真的修改了system header 那麼解決的方法 1 還原 2 重灌xcode 關於xib連線的三...

http各種中的各種timeout

1.tomcat 可以通過telnet測試 在tomcat的server.xml中,有個配置節 uriencoding utf 8 其中的connectiontimeout代表的意思是 在已經建立的http連線上,如果5000毫秒沒有資訊傳輸,怎伺服器關閉連線。但如果tomcat伺服器內容消耗的時間...