Django中request物件與response物件
阿新 • • 發佈:2018-12-22
瀏覽器向伺服器傳引數,主要通過以下四種方式
檢視函式定義方式
from django.shortcuts import render from django.http import HttpResponse, JsonResponse import json # 1獲取URL中的引數 def get_params(request, id, category): print(id, category) # 2獲取查詢字串中的引數 fquery = request.GET.get('fquery') sqquery = request.GET.get('squery') print(fquery, squery) return HttpResponse('OK') # 3獲取請求體引數 def post1(request): # 接收表單資料 dict1 = request.POST id = dict1.get('id') categoty = dict1.get('category') print(id, category) return HttpResponse('接受表單資料成功') def json1(request): # 接受非表單資料 # 1.接受json資料,型別為Bytes json_bytes = request.body # 將位元組轉成字串 json_str = json_bytes.decode() # 將字串轉成字典 json_dict = json.loads(json_str) title = json_dict.get('title') address = json_dict['address'] print(title, address) # return JsonResponse({'title':'hello'}) return JsonResponse('hello world', safe=False) # 4獲取請求頭的引數 def cookie_test(request): # cookie的讀寫操作 # 寫 response = HttpResponse('ok') # response.set_cookie('hello','django',max_age=60*60*24) # 讀 hello = request.COOKIES.get('hello') print(request.COOKIES) # {'hello': 'django'} print(hello) return response def session_test(request): # session的讀寫操作 # 寫 # request.session['name'] = 'wanger' # 讀 # print(request.session.get('name')) # 刪除某個鍵及值 # del request.session['name'] # 刪除所有的鍵及值 request.session.clear() # 刪除整條資料 session唯一識別符號也從redis中刪除 request.session.flush() return HttpResponse('成功')
JsonResponse是HttpResponse的子類,用來返回json資料,當返回的資料不是json型別時,需要指定引數safe=False
app/urls對映關係的定義
from django.conf.urls import url from .import views urlpatterns = [ # 獲取url中的引數,未命名 # url('^(\d{4})/(\d{2})$', views.get_params), # 獲取url中的引數,引數命名 url(r'^(?P<id>\d{4})/(?P<category>\d{2})/$',views.get_params), # 獲取表單資料 url(r'^post1/$',views.post1), # 獲取非表單資料json url(r'^json1/$',views.json1), # 設定cookie和session快取 url(r'^cookie/$',views.cookie_test), url(r'^session$',views.session_test), ]