日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django从理论到实战(part41)--WSGIRequest对象

發(fā)布時間:2023/12/19 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django从理论到实战(part41)--WSGIRequest对象 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

學習筆記,僅供參考,有錯必糾

參考自:Django打造大型企業(yè)官網(wǎng)–Huang Y;


文章目錄

    • WSGIRequest對象
      • WSGIRequest對象常用屬性
      • WSGIRequest對象常用方法



WSGIRequest對象


Django在接收到http請求之后,會根據(jù)http請求攜帶的參數(shù)以及報文信息創(chuàng)建一個WSGIRequest對象,并且作為視圖函數(shù)第一個參數(shù)傳給視圖函數(shù),也就是我們經(jīng)常看到的request參數(shù)。


WSGIRequest對象常用屬性


  • 常用屬性

屬性解釋
path請求服務(wù)器的完整“路徑”,但不包含域名和參數(shù)
method代表當前請求的http方法,比如是GET還是POST
GET一個django.http.request.QueryDict對象,操作起來類似于字典,這個屬性中包含了所有以?xxx=xxx的方式上傳上來的參數(shù)
POST也是一個django.http.request.QueryDict對象,這個屬性中包含了所有以POST方式上傳上來的參數(shù)。
FILES也是一個django.http.request.QueryDict對象,這個屬性中包含了所有上傳的文件
COOKIES一個標準的Python字典,包含所有的cookie,鍵值對都是字符串類型
session一個類似于字典的對象,用來操作服務(wù)器的session
META存儲的客戶端發(fā)送上來的所有header信息
REMOTE_ADDR客戶端的IP地址
  • 舉個例子

在主views.py文件中,敲入如下代碼:

# -*- coding: utf-8 -*-from django.shortcuts import render,redirect,reverse from django.http import HttpResponsedef index(request):context = {"path":request.path, #請求服務(wù)器的完整“路徑”,但不包含域名和參數(shù)"method":request.method, #當前請求的http方法"GET":request.GET, #一個django.http.request.QueryDict對象,這個屬性中包含了所有以?xxx=xxx的方式上傳上來的參數(shù)}return render(request, "index.html", context = context)def redir(request):return redirect(reverse("index"))

主urls.py文件:

from django.contrib import admin from django.urls import path from . import views from django.conf.urls import includeurlpatterns = [path('admin/', admin.site.urls),path('', views.index, name = "index"),path("redirect/", views.redir, name = "redir"),path("front/", include("front.urls")) ]

模板文件index.html:

{% extends "basePage.html" %}{% block content %}<h1>首頁</h1><p>歡迎來到圖書管理系統(tǒng)!</p><table><tr><td>路徑:</td><td>{{ path }}</td></tr><tr><td>http方法:</td><td>{{ method }}</td></tr><tr><td>GET參數(shù):</td><td>{{ GET }}</td></tr></table>{% endblock %}

向http://127.0.0.1:8000/?name=huang&age=19發(fā)起請求:


向http://127.0.0.1:8000/redirect發(fā)起請求:


WSGIRequest對象常用方法


  • 常用方法
方法說明
is_secure()是否是采用https協(xié)議
is_ajax()是否采用ajax發(fā)送的請求
get_host()服務(wù)器的域名
get_full_path()返回完整的path,如果有查詢字符串,還會加上查詢字符串
get_raw_uri()獲取請求的完整url

  • 舉個例子

在主views.py文件中,敲入如下代碼:

from django.shortcuts import render,redirect,reverse from django.http import HttpResponsedef index(request):context = {"is_secure":request.is_secure(), #請求服務(wù)器的完整“路徑”,但不包含域名和參數(shù)"get_host":request.get_host(), #當前請求的http方法"get_full_path":request.get_full_path(), #一個django.http.request.QueryDict對象,這個屬性中包含了所有以?xxx=xxx的方式上傳上來的參數(shù)}return render(request, "index.html", context = context)

index.html:

{% extends "basePage.html" %}{% block content %}<h1>首頁</h1><p>歡迎來到圖書管理系統(tǒng)!</p><table><tr><td>是否是采用https協(xié)議:</td><td>{{ is_secure }}</td></tr><tr><td>服務(wù)器的域名:</td><td>{{ get_host }}</td></tr><tr><td>get_full_path:</td><td>{{ get_full_path }}</td></tr></table>{% endblock %}

向http://127.0.0.1:8000/?name=huang發(fā)起請求:


總結(jié)

以上是生活随笔為你收集整理的Django从理论到实战(part41)--WSGIRequest对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。