Django中請求與響應

2021-09-13 11:06:04 字數 2394 閱讀 5908

利用http的幾種傳參路徑:

1、url路徑引數

return httpresponse('ok')2、django中的querydict物件

httprequest物件的屬性get、post都是querydict型別的物件

# /qs/?a=1&b=2&a=3

def qs(request):

a = request.get.get('a')

b = request.get.get('b')

alist = request.get.getlist('a')

print(a) # 3

print(b) # 2

print(alist) # ['1', '3']

return httpresponse('ok')

重要:查詢字串不區分請求方式,即假使客戶端進行post方式的請求,依然可以通過request.get獲取請求中的查詢字串資料。

4、請求體

請求體資料格式不固定,可以是表單型別字串,可以是json字串,可以是xml字串,應區別對待。

django預設開啟了csrf防護,會對上述請求方式進行csrf防護驗證,在測試時可以關閉csrf防護機制,方法為在settings.py檔案中注釋掉csrf中介軟體。

import json

def get_body_json(request):

json_str = request.body

json_str = json_str.decode() # python3.6 無需執行此步

req_data = json.loads(json_str)

print(req_data['a']) # 轉成json後就可以使用鍵值對取值了

print(req_data['b'])

return httpresponse('ok')

5、請求頭

可以通過request.meta屬性獲取請求頭headers中的資料,request.meta為字典型別。

def get_headers(request):

print(request.meta['content_type'])

return httpresponse('ok')

6、其他常用的httprequest物件屬性

檢視在接收請求並處理後,必須返回httpresponse物件或子物件。httprequest物件由django建立,httpresponse物件由開發人員建立。

可以使用django.http.httpresponse來構造響應物件。

httpresponse(content=響應體, content_type=響應體資料型別, status=狀態碼)

在header中設定資料

response.setheader(「pragma」, 「no-cache」);

響應頭可以直接將httpresponse物件當做字典進行響應頭鍵值對的設定:

response['itcast'] = 'python' # 自定義響應頭itcast, 值為python2、jsonresponse

若要返回json資料,可以使用jsonresponse來構造響應物件,作用:

return jsonresponse()3、 redirect 重定向

from django.shortcuts import redirect

def demo_view(request):

return redirect('/index.html')

django 9 請求與響應

寫在表單下面 檔案上傳 settings.py upload root os.paht.join base dir,upload enctype multipart form data 上傳多個檔案 multiple request用於接受前端的資料 render用於給前端返回資料 file.chu...

Django中url以及請求響應

1 url傳遞引數 1 非關鍵字引數 urls正則的定義 路徑 路徑 引數匹配的正則 注意 1 如果要獲取傳遞進來的引數,必須給對應的引數的正則加上 才可以提取 2 如果url中有引數,就必須在檢視函式的形式引數上定義乙個引數,用來接收,否則報錯 如果需要傳遞多個引數 urls正則的定義 路徑 路徑...

django響應POST請求

因為乙個特殊的需求,post提交的資料並不是表單資料,而是乙個檔案。前端使用的是ajax。後端使用的是django 因此前端需要做的特殊處理是 var tempfile new formdata ajax error function e 後端需要處理的是 在urls.py中增加路徑。在對應的路徑下...