django 獲取用戶的請求信息


常見的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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM