常見的Http的請求方法:
- GET 向特定資源發出請求(訪問網頁)
- POST 向指定資源提交數據處理請求(提交表單,上傳文件)
- OPTION 返回服務器針對特定資源所支持的請求方法
- PUT 向指定資源位置上傳數據內容
- DELETE 請求服務器刪除request-URL所標示的資源
- HEAD 與GET請求類似,返回的響應中沒有具體內容,用於獲取報頭
- TRACE 回復和顯示服務器收到的請求,用於測試和診斷
- CONNECT HTTP/1.1 協議中能夠將連接改為管道方式的代理服務器。
下面是一些 常用的屬性進行說明:
- COOKIE 獲取客戶端(瀏覽器)的Cookie信息,以字典形式表示,並且鍵值對都是字符串類型。
- FILES django.http.request.QueryDict 對象,包含所有的文件上傳信息。
- GET 獲取GET請求的請求參數,它是django.http.request.QueryDict對象,操作起來類似於字典。
- POST 獲取POST請求的請求參數,它是django.http.QueryDict 對象,操作起來類似於字段。
- META 獲取客戶端(瀏覽器)的請求信息,以字典形式存儲。
- method 獲取當前請求的請求方式(GET 請求或POST 請求)。
- path 獲取當前請求的路由地址。
- session 一個類似字段的對象,用來操作服務器的會話信息,可臨時存放用戶信息。
- user 當django啟用AuthenticationMiddleware 中間件時才可用。它的值是內置數據模型User 的對象,表示當前登錄的用戶。如果用戶當前沒有登錄,那么user將設為django.contrib.auth.models.AnonymousUser 的一個實例。
HttpRequest 類常用的方法:
- is_secure() 是否是采用HTTPS協議。
- is_ajax() 是否采用AJAX 發送HTTP 請求。判斷原理是請求頭中是否存在X-Requested-With:XMLHttpRequest。
- get_host() 獲取服務器的域名。如果在訪問的時候設有端口,就會加上端口號,如127.0.0.1:8000.
- get_full_path() 返回路由地址。如果該請求為GET請求並且設有請求參數,返回路由地址就會將請求參數返回,如/?user=jc&pw=123456。
- get_raw_uri() 獲取完整的網址信息,將服務器的域名、端口和路由地址一並返回,如http://127.0.0.1:8000/?user=jc&pw=123456。
from django.shortcuts import render from django.http import HttpResponse # Create your views here. def index(request): if request.method == "GET": #類方法的使用 print(request.is_secure()) print(request.is_ajax()) print(request.get_host()) print(request.get_full_path()) print(request.get_raw_uri()) #屬性的使用 print(request.COOKIES) print(request.content_type) print(request.content_params) print(request.scheme) #獲取GET請求的請求參數 print(request.GET.get("user","")) return render(request,"index.html") elif request.method == "POST": #獲取POST 請求的請求參數 print(request.POST.get("user","")) return render(request,"index.html")
templates的 index.html
<html> <header> <title>hello world</title> </header> <body> <a href="{%url 'myApp:download1' %}">下載1</a> <a href="{%url 'myApp:download2' %}">下載2</a> <a href="{%url 'myApp:download3' %}">下載3</a> <form action="" method="POST" > {% csrf_token %} <input type="text" name="user" > <input type="submit" value="提交"> </form> </body> </html>