django學習記錄之HttpResponse,Cookie
阿新 • • 發佈:2018-12-18
檢視在接收請求並處理後,必須返回HttpResponse物件或子物件HttpresponseRedirect。HttpRequest物件由Django建立,HttpResponse物件由開發人員建立。
1.HttpResponse響應物件。
content:返回的內容
status_code:返回HTTP響應狀態碼
content_type:指定返回資料的MIME型別
可以直接將HttpResponse物件當做字典來設定headers
def demo_response(request): """ 響應函式 :param request: HttpRequest物件,由django建立 :return:響應 """ # HtppResponse有content,status_code,content_type屬性 response = HttpResponse() # 響應返回的內容 # response = HttpResponse('subject python') # 或者 response.content = 'aaa' response.status_code = 400 # 響應頭可以將HttpResponse物件當做字典進行響應頭鍵值對的設定 response['subject'] = 'python' return response
2.JsonResponse
若要返回json資料,可以使用JsonResponse來構造響應物件:
1.可以將資料轉為json字串
2.可以設定響應頭Content-Type 為 application/json
def demo_response(request):
res = {'name':'wjm','age':18}
return JsonResponse(res)
3.redirect重定向
def demo_redirect(request):
return redirect('/users/index/')
cookie
cookie:1.基於鍵值對的形式儲存;2.瀏覽器的同源政策,不同域名的cookie是不能互相訪問的;3.當瀏覽器請求某網站時,會將和該網站相關的所有cookie資訊提交給該網站伺服器。
設定cookie:通過HttpResponse響應物件中的set_cookie來設定:
HttpResponse.set_cookie('name',value = 'wjm',max_age = 3600)
max_age預設單位為秒,若不設定則為None
def demo_view(requset): response = HttpResponse('ok') response.set_cookie('name','wjm') # 臨時cookie response.set_cookie('age',18,max_age=3600) # 有效期一小時 return response
讀取cookie
可以通過HttpRequest物件來讀取本次請求攜帶的cookie值。
def demo_view(requset):
# response = HttpResponse('ok')
# response.set_cookie('name','wjm') # 臨時cookie
# response.set_cookie('age',18,max_age=3600) # 有效期一小時
cookie1 = requset.COOKIES.get('name')
cookie2 = requset.COOKIES.get('age')
print(cookie1,cookie2)
return HttpResponse('OK')