初步學習Django-第四篇:views.PY文件詳解
http請求中產生的兩個核心對象:
http請求:HttpRequest
http響應:HttpResponse
所在位置:from django.http import HttpRequest,HttpResponse
1、HttpRequest:
HttpRequest對象的屬性:
Attribute | Description |
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請求的情況也是有可能發生的。也就是說,表單form通過HTTP POST方法提交 請求,但是表單中可以沒有數據。不能使用語句if request.POST來判斷是否使用HTTP POST方法; 應該使用if request.method == ‘POST‘ (參見本表的method屬性)。 註意:POST不包括file-upload信息。參見FILES屬性。 |
REQUEST |
這個屬性再django1.9裏面已經被移除掉了。 |
COOKIES | 包含所有cookies的標準python字典對象。Keys和values都是字符串。 |
FILES |
包含所有上傳文件的類字典對象。FILES中的每個Key都是<input type="file" name=""/>標簽中 name屬性的值。FILES中的每個value同時也是一個標準Python字典對象,包含下面三個Keys:
註意:只有在請求方法是POST,並且請求頁面中<form>有enctype="multipart/form-data"屬性時FILES才擁有數據。否則,FILES是一個空字典。 |
META |
包含所有可用HTTP頭部信息的字典。例如:
META中這些頭加上前綴HTTP_最為Key,例如: HTTP_ACCEPT_ENCODING HTTP_ACCEPT_LANGUAGE HTTP_HOST:客戶發送的HTTP主機頭信息 HTTP_REFERER:referring頁 HTTP_USER_AGENT:客戶端的user-agent字符串 HTTP_X_BENDER:X-Bender頭信息 |
user |
是一個django.contrib.auth.models.User對象,代表當前登錄的用戶。如果訪問用戶當前沒有登錄,user將被初始化為django.contrib.auth.models.AnonymousUser的實例。你可以通過user的is_authenticated()方法來辨別用戶是否登錄; if request.user.is_authenticated(): #Do something for logged-in users. else: #Do something for anonymous users. 只有激活Django中的AuthenticationMiddleware時該屬性才可用 |
session | 唯一可讀寫的屬性,代表當前會話的字典對象。只有激活Django中的session支持時該屬性才可用。 |
raw_post_data | 原始HTTP POST數據。未解析過。高級處理時會有用處。 |
HttpRequest對象的方法(部分):
get_full_path() | 返回包含查詢字符串的請求路徑。例如,"/music/bands/the_beatles/?print=true" |
QueryDict對象(部分)
get() | 如果key對應多個value,get()返回最後一個value。 |
在HttpRequest對象中,GET和POST屬性時django.http.QueryDict類的實例。
2、HttpResponse:
初步學習Django-第四篇:views.PY文件詳解