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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python Django之GET请求和POST请求及响应处理

發布時間:2025/3/11 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python Django之GET请求和POST请求及响应处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、請求中的方法

方法描述
GET請求指定的頁面信息,并返回實體主體。
HEAD類似于GET請求,只不過返回的響應中沒有具體的內容,用于獲取報頭。
POST向指定資源提交數據進行處理請求(例如:提交表單或者上傳文件)。數據被包含在請求體中。PoST請求可能會導致新的資源的建立和/或已有資源的修改。
PUT從客戶端向服務器傳送的數據取代指定的文檔的內容。
DELETE請求服務器刪除指定的頁面。
CONNECTHTTP/1.1協議中預留能夠將連接改為管道方式的代理服務器。
OPTIONS允許客戶端查看服務器的性能。
TRACE回顯服務器收到的請求,主要用于測試或連接。

二、Django中的請求

方法描述
path_infoURL字符串
method字符串,表示HTTP請求方法,常用值:‘GET’、‘POST’
GETQueryDict查詢字典的對象,包含get請求方式的所有數據。
POSTQueryDict查詢字典的對象,包含post請求方式的所有數據。
FILES類似于字典的對象,包含所有的上傳文件信息。
COOKIESPython字典,包含所有的cookie,鍵和值都為字符串。
session似于字典的對象,表示當前的會話。
body字符串,請求體的內容(POST或PUT)
scheme請求協議(‘http’/‘https’)
request.get_full_path()請求的完整路徑
request.META請求中的元數據(消息頭),-request.META[‘REMOTE_ADDR’]:客戶端IP地址

三、響應狀態碼

下面是常見的HTTP狀態碼:

  • 200 - 請求成功
  • 301 - 永久重定向-資源(網頁等)被永久轉移到其他URL
  • 302 - 臨時重定向
  • 404 - 請求的資源(網頁等)不存在
  • 500 - 內部服務器錯誤

四、Django中的響應對象

構造函數格式:

HttpResponse(content=響應體,content_type=響應體數據類型,status=狀態碼)

作用:

向客戶端瀏覽器返回響應,同時攜帶響應體內容

參數:

  • content:表示返回的內容。
  • ststus_code:返回的HTTP響應狀態碼(默認為200)。
  • content_type:指定返回數據的MIME類型(默認為"text/html")。瀏覽器會根據這個屬性,來顯示數據。如果是text/html,那么就會解析這個字符串,如果text/plain,那么就會顯示一個純文本。

常用的Content-Type如下:

  • ‘text/html’:默認的html文件
  • ‘text/plain’:純文本
  • ‘text/css’:css文件
  • ‘text/javascript’:js文件
  • ‘multipart/form-data’:文件提交
  • ‘application/json’:json傳輸
  • ‘application/xml’:xml文件

HttpResponse子類:

類型作用狀態碼
HttpResponseRedirect重定向302
HttpResponseNotModified未修改304
HttpResponseBadRequest錯誤請求400
HttpResponseNotFound沒有對應的資源404
HttpResponseForbidden請求被禁止403
HttpResponseServerError服務器錯誤500

五、GET請求實例測試

Python利用Django創建mysite工程,添加views.py文件,如下圖示:

urls.py文件代碼:

from django.contrib import admin from django.urls import path, re_path from . import viewsurlpatterns = [path('admin/', admin.site.urls),# http://127.0.0.1:8000/test_requestpath('test_request/', views.test_request), ]

views.py文件代碼:

from django.http import HttpResponsedef test_request(request):print('path info is : ', request.path_info)print('method is : ', request.method)print('querystring is : ', request.GET)print('full path is :', request.get_full_path())print('客戶端IP is :', request.META['REMOTE_ADDR'])return HttpResponse('test request ok')

編譯運行后,在瀏覽器地址欄輸入:http://127.0.0.1:8000/test_request/?m=1&n=2效果如下:

六、GET處理和POST處理

定義:

無論是GET還是POST,統一都由視圖函數接收請求,通過判斷request.method區分具體的請求動作。

GET處理:

GET請求動作,一般用于向服務器獲取數據。

能夠產生GET請求的場景:

  • 瀏覽器地址欄中輸入URL,回車后

  • <a href="地址?參數=值&參數=值">

  • form表單中的method為get

POST處理:

POST請求動作,一般用于向服務器提交大量/隱私數據。

客戶端通過表單等POST請求將數據傳遞給服務端。

服務器端接收參數,通過request.method來判斷是否為POST請求。


七、GET處理和POST處理實例測試

urls.py文件代碼:

from django.contrib import admin from django.urls import path, re_path from . import viewsurlpatterns = [path('admin/', admin.site.urls),# http://127.0.0.1:8000/main_pagepath('main_page/', views.main_page),# http://127.0.0.1:8000/test_get_postpath('test_get_post/', views.test_get_post), ]

views.py文件代碼:

from django.http import HttpResponse, HttpResponseRedirectPOST_FORM = ''' <form method='post' action='/test_get_post/'>用戶名:<input type='text' name='uname'><input type='submit' value='提交'> </form> '''def main_page(request):html = """<h4>這是我的網站首頁</h4><a href="http://www.datutusuibi.com/" target="_blank">大土土隨筆</a>"""return HttpResponse(html)def test_get_post(request):if request.method == 'GET':print(request.GET)print(request.GET['m'])print(request.GET.getlist('m'))print(request.GET.get('t', 'no t'))return HttpResponse(POST_FORM)elif request.method == 'POST':# 處理用戶提交數據print('uname is : ', request.POST['uname'])return HttpResponseRedirect('/main_page/')else:passreturn HttpResponse('test get post ok')

使用POST方式接收客戶端數據時,需要取消csrf驗證。

編譯運行后,在瀏覽器地址欄輸入:http://127.0.0.1:8000/test_get_post/?m=1&n=2&m=3效果如下:


輸入用戶名,單擊“提交”按鈕,

效果如下:



獲取更多資料,請訪問大土土隨筆

如果本文對您有所幫助,請關注微信公眾號“捷創源科技”

總結

以上是生活随笔為你收集整理的Python Django之GET请求和POST请求及响应处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。