欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
python測試開(kāi)發(fā)django-98.views視圖函數中request參數詳解

前言

django 在 views 視圖函數中會(huì )傳一個(gè)request參數,request 是 HttpRequest 的實(shí)例對象。
當請求一個(gè)頁(yè)面時(shí),Django 創(chuàng )建一個(gè)HttpRequest對象,其中包含有關(guān)請求的元數據。然后 Django 加載適當的視圖,將傳遞HttpRequest給視圖函數的第一個(gè)參數。
每個(gè)視圖負責返回一個(gè)HttpResponse對象。

HttpRequest 屬性

HttpRequest 的一些屬性和作用

屬性說(shuō)明
HttpRequest.scheme請求的協(xié)議,一般為http或者https
HttpRequest.body       作為字節字符串的原始 HTTP 請求正文
HttpRequest.path表示請求頁(yè)面的完整路徑的字符串,不包括方案或域。例子:“/music/bands/the_beatles/“
HttpRequest.path_info獲取具有 URL 擴展名的資源的附加路徑信息。相對于HttpRequest.path,使用該方法便于移植。
HttpRequest.method獲取該請求的方法GET/POST/PUT…,比如:if request.method == 'GET’
HttpRequest.encoding獲取請求中表單提交數據的編碼。
HttpRequest.content_type獲取請求的MIME類(lèi)型(從CONTENT_TYPE頭部中獲取),django1.10的新特性。
HttpRequest.content_params獲取CONTENT_TYPE中的鍵值對參數,并以字典的方式表示,django1.10的新特性。
HttpRequest.GET返回一個(gè) querydict 對象(類(lèi)似于字典,本文最后有querydict的介紹),該對象包含了所有的HTTP GET參數
HttpRequest.POST返回一個(gè) querydict ,該對象包含了所有的HTTP POST參數,通過(guò)表單上傳的所有  字符  都會(huì )保存在該屬性中。
HttpRequest.COOKIES   返回一個(gè)包含了所有cookies的字典。鍵和值是字符串。
HttpRequest.FILES           返回一個(gè)包含了所有的上傳文件的  querydict  對象。通過(guò)表單所上傳的所有  文件  都會(huì )保存在該屬性中。key的值是input標簽中name屬性的值,value的值是一個(gè)UploadedFile對象
HttpRequest.META返回一個(gè)包含了所有http頭部信息的字典
HttpRequest.resolver_matchResolverMatch表示已解析 URL的實(shí)例。此屬性?xún)H在 URL 解析發(fā)生后設置,這意味著(zhù)它在所有視圖中可用,但在 URL 解析發(fā)生之前執行的中間件中不可用(process_view()盡管您可以使用它 )
HttpRequest.current_app該url模板標簽將使用它的值作為current_app 參數reverse()。
HttpRequest.urlconf這將用作當前請求的根 URLconf,覆蓋ROOT_URLCONF設置
HttpRequest.session中間件屬性 來(lái)自SessionMiddleware:一個(gè)可讀可寫(xiě)的類(lèi)似字典的對象,表示當前會(huì )話(huà)。
HttpRequest.site  中間件屬性 來(lái)自CurrentSiteMiddleware: 代表當前站點(diǎn)的實(shí)例Site或 RequestSite作為返回 的實(shí)例get_current_site()。
HttpRequest.user  中間件屬性,表示當前登錄的用戶(hù)。來(lái)自AuthenticationMiddleware:AUTH_USER_MODEL代表當前登錄用戶(hù)的實(shí)例。

request.user

來(lái)自AuthenticationMiddleware:AUTH_USER_MODEL代表當前登錄用戶(hù)的實(shí)例。如果用戶(hù)當前未登錄,user則將設置為 的實(shí)例AnonymousUser。
你可以用 區分它們 is_authenticated,像這樣:

if request.user.is_authenticated:
... # Do something for logged-in users.
else:
... # Do something for anonymous users.

HttpRequest.user實(shí)際上是由一個(gè)定義在django.contrib.auth.models 中的  user model  類(lèi)  所創(chuàng )建的對象。
該類(lèi)有許多字段,屬性和方法,常用字段:

字段說(shuō)明
username用戶(hù)名
first_name
last_name
email郵箱
password密碼
groups
user_permissions
is_staff布爾值,標明用戶(hù)是否可以訪(fǎng)問(wèn)admin頁(yè)面
is_superuser是否超級管理員admin用戶(hù)
last_login上一次登陸時(shí)間
date_joined用戶(hù)創(chuàng )建時(shí)間

屬性:

is_authenticated   布爾值,標志著(zhù)用戶(hù)是否已認證。在django1.10之前,沒(méi)有該屬性,但有與該屬性同名的方法。
方法:

方法說(shuō)明作用
HttpRequest.user.get_username()注意:方法的圓括號在templates標簽中必需省略??!獲取username。盡量使用該方法來(lái)代替使用username字段
HttpRequest.user.get_full_name()注意:方法的圓括號在templates標簽中必需省略??!獲取first_name和last_name
HttpRequest.user.short_name()注意:方法的圓括號在templates標簽中必需省略??!獲取first_name
HttpRequest.user.set_password(raw_password)注意:該方法無(wú)法在template標簽中使用??!設置密碼
HttpRequest.user.check_password(raw_password)注意:該方法無(wú)法在template標簽中使用??!如果raw_password與用戶(hù)密碼相等,則返回True

HttpRequest.META

包含所有可用 HTTP 標頭的字典??捎玫臉祟^取決于客戶(hù)端和服務(wù)器,但這里有一些示例:

屬性說(shuō)明
CONTENT_LENGTH請求正文的長(cháng)度(作為字符串)。
CONTENT_TYPE請求正文的 MIME 類(lèi)型。
HTTP_ACCEPT可接受的響應內容類(lèi)型。
HTTP_ACCEPT_ENCODING可接受的響應編碼。
HTTP_ACCEPT_LANGUAGE可接受的響應語(yǔ)言。
HTTP_HOST客戶(hù)端發(fā)送的 HTTP Host 頭。
HTTP_REFERER引用頁(yè)面,如果有的話(huà)。
HTTP_USER_AGENT客戶(hù)端的用戶(hù)代理字符串。
QUERY_STRING查詢(xún)字符串,作為單個(gè)(未解析的)字符串。
REMOTE_ADDR客戶(hù)端的IP地址。
REMOTE_HOST客戶(hù)端的主機名。
REMOTE_USERWeb 服務(wù)器驗證的用戶(hù)(如果有)。
REQUEST_METHOD一個(gè)字符串,例如”GET”or “POST”。
SERVER_NAME服務(wù)器的主機名。
SERVER_PORT服務(wù)器的端口(作為字符串)。

除了上面給出的CONTENT_LENGTHandCONTENT_TYPE之外,META通過(guò)將所有字符轉換為大寫(xiě),將所有連字符替換為下劃線(xiàn)并HTTP_在名稱(chēng)中添加前綴,請求中的任何 HTTP 標頭都會(huì )轉換為鍵。因此,例如,調用的標頭X-Bender將映射到METAkey HTTP_X_BENDER。

請注意,runserver刪除名稱(chēng)中帶有下劃線(xiàn)的所有標題,因此您不會(huì )在META. 這可以防止基于下劃線(xiàn)和破折號之間的歧義的標題欺騙,兩者都被規范化為 WSGI 環(huán)境變量中的下劃線(xiàn)。它與 Nginx 和 Apache 2.4+ 等 Web 服務(wù)器的行為相匹配。

HttpRequest 方法

HttpRequest.get_host() :使用來(lái)自HTTP_X_FORWARDED_HOST(如果USE_X_FORWARDED_HOST已啟用)和HTTP_HOST標頭中的信息以該順序返回請求的原始主機 

HttpRequest.get_port() :使用來(lái)自HTTP_X_FORWARDED_PORT(如果USE_X_FORWARDED_PORT已啟用)和SERVER_PORT META變量的信息,按該順序返回請求的起始端口 。

HttpRequest.get_full_path():返回path,加上附加的查詢(xún)字符串(如果適用)。例子:"/music/bands/the_beatles/?print=true"

HttpRequest.get_full_path_info():Django 2.1 中的新功能。喜歡get_full_path(),但使用path_info代替 path。例子:"/minfo/music/bands/the_beatles/?print=true"

HttpRequest.build_absolute_uri( location=None )  返回 的絕對 URI 形式location。如果未提供位置,則位置將設置為request.get_full_path()。

如果位置已經(jīng)是絕對 URI,則不會(huì )更改。否則,絕對 URI 將使用此請求中可用的服務(wù)器變量構建。例如:

>>> request.build_absolute_uri()
'https://example.com/music/bands/the_beatles/?print=true'
>>> request.build_absolute_uri('/bands/')
'https://example.com/bands/'
>>> request.build_absolute_uri('https://example2.com/bands/')
'https://example2.com/bands/'

HttpRequest.get_signed_cookie( key , default=RAISE_ERROR , salt='' , max_age=None ): 返回簽名 cookie 的 cookie 值,或者django.core.signing.BadSignature如果簽名不再有效則引發(fā) 異常。如果您提供default參數,則異常將被抑制,而將返回默認值。

可選salt參數可用于提供額外保護,防止對您的密鑰進(jìn)行暴力破解。如果提供,max_age將根據附加到 cookie 值的簽名時(shí)間戳檢查該參數, 以確保 cookie 不超過(guò) max_age秒。

例如:

>>> request.get_signed_cookie('name')
'Tony'
>>> request.get_signed_cookie('name', salt='name-salt')
'Tony' # assuming cookie was set using the same salt
>>> request.get_signed_cookie('nonexistent-cookie')
...
KeyError: 'nonexistent-cookie'
>>> request.get_signed_cookie('nonexistent-cookie', False)
False
>>> request.get_signed_cookie('cookie-that-was-tampered-with')
...
BadSignature: ...
>>> request.get_signed_cookie('name', max_age=60)
...
SignatureExpired: Signature age 1677.3839159 > 60 seconds
>>> request.get_signed_cookie('name', False, max_age=60)
False

HttpRequest.is_secure() : True如果請求是安全的,則返回;也就是說(shuō),如果它是用 HTTPS 制作的。

HttpRequest.is_ajax():通過(guò)檢查字符串的標頭,返回True請求是否是通過(guò) an 發(fā)出的 。大多數現代 JavaScript 庫都會(huì )發(fā)送此標頭。如果您編寫(xiě)自己的調用(在瀏覽器端),則必須手動(dòng)設置此標頭才能工作。

HttpRequest.read( size=None )
HttpRequest.readline()
HttpRequest.readlines()
HttpRequest.__iter__()

實(shí)現用于從HttpRequest實(shí)例讀取的類(lèi)文件接口的方法 。這使得以流方式使用傳入請求成為可能。一個(gè)常見(jiàn)的用例是使用迭代解析器處理大型 XML 負載,而無(wú)需在內存中構建整個(gè) XML 樹(shù)。

給定這個(gè)標準接口,一個(gè)HttpRequest實(shí)例可以直接傳遞給一個(gè) XML 解析器,例如 ElementTree:

import xml.etree.ElementTree as ET
for element in ET.iterparse(request):
process(element)

HttpRequest官方文檔地址https://docs.djangoproject.com/zh-hans/2.1/ref/request-response/#django.http.HttpRequest

2021年第八期《python接口web自動(dòng)化+測試開(kāi)發(fā)》7.17號開(kāi)學(xué)(課程全面升級?。?/a> 加量不加價(jià)(新增postman, 贈送selenium和python基礎2個(gè)課)

時(shí)7月17號-10月16號,、20:30-22:30

打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
python django Request對象
Django框架-Django視圖(views)系統
Django的HttpRequest和HttpResponse對象
django 進(jìn)階
【django框架】共4大模塊50頁(yè)md學(xué)習文檔 第3篇:django路由和網(wǎng)絡(luò )請求使用詳解
005Django 表單 | 菜鳥(niǎo)教程
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久