Django从理论到实战(part41)--WSGIRequest对象
生活随笔
收集整理的這篇文章主要介紹了
Django从理论到实战(part41)--WSGIRequest对象
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學習筆記,僅供參考,有錯必糾
參考自:Django打造大型企業官網–Huang Y;
文章目錄
- WSGIRequest對象
- WSGIRequest對象常用屬性
- WSGIRequest對象常用方法
WSGIRequest對象
Django在接收到http請求之后,會根據http請求攜帶的參數以及報文信息創建一個WSGIRequest對象,并且作為視圖函數第一個參數傳給視圖函數,也就是我們經常看到的request參數。
WSGIRequest對象常用屬性
- 常用屬性
| path | 請求服務器的完整“路徑”,但不包含域名和參數 |
| method | 代表當前請求的http方法,比如是GET還是POST |
| GET | 一個django.http.request.QueryDict對象,操作起來類似于字典,這個屬性中包含了所有以?xxx=xxx的方式上傳上來的參數 |
| POST | 也是一個django.http.request.QueryDict對象,這個屬性中包含了所有以POST方式上傳上來的參數。 |
| FILES | 也是一個django.http.request.QueryDict對象,這個屬性中包含了所有上傳的文件 |
| COOKIES | 一個標準的Python字典,包含所有的cookie,鍵值對都是字符串類型 |
| session | 一個類似于字典的對象,用來操作服務器的session |
| META | 存儲的客戶端發送上來的所有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, #請求服務器的完整“路徑”,但不包含域名和參數"method":request.method, #當前請求的http方法"GET":request.GET, #一個django.http.request.QueryDict對象,這個屬性中包含了所有以?xxx=xxx的方式上傳上來的參數}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>歡迎來到圖書管理系統!</p><table><tr><td>路徑:</td><td>{{ path }}</td></tr><tr><td>http方法:</td><td>{{ method }}</td></tr><tr><td>GET參數:</td><td>{{ GET }}</td></tr></table>{% endblock %}向http://127.0.0.1:8000/?name=huang&age=19發起請求:
向http://127.0.0.1:8000/redirect發起請求:
WSGIRequest對象常用方法
- 常用方法
| is_secure() | 是否是采用https協議 |
| is_ajax() | 是否采用ajax發送的請求 |
| get_host() | 服務器的域名 |
| 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(), #請求服務器的完整“路徑”,但不包含域名和參數"get_host":request.get_host(), #當前請求的http方法"get_full_path":request.get_full_path(), #一個django.http.request.QueryDict對象,這個屬性中包含了所有以?xxx=xxx的方式上傳上來的參數}return render(request, "index.html", context = context)index.html:
{% extends "basePage.html" %}{% block content %}<h1>首頁</h1><p>歡迎來到圖書管理系統!</p><table><tr><td>是否是采用https協議:</td><td>{{ is_secure }}</td></tr><tr><td>服務器的域名:</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發起請求:
總結
以上是生活随笔為你收集整理的Django从理论到实战(part41)--WSGIRequest对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 是等华为p30还是买p20(「系」和「是
- 下一篇: 斗罗大陆后期阵容搭配(《斗罗大陆》动画)