請求對象——request 獲取get請求的值 一次請求,返回一個響應。 地址欄:http://127.0.0.1:8000/day3/get_request?lan=python 問號:代表請求參數 需求:拿到請求參數 傳入單個值 # views.py def get_request(reques ...
請求對象——request
獲取get請求的值
一次請求,返回一個響應。
地址欄:http://127.0.0.1:8000/day3/get_request?lan=python
問號:代表請求參數
需求:拿到請求參數
傳入單個值
# views.py
def get_request(request):
return HttpResponse('getrequest')
# urls.py
path('getrequest',get_request),
想要拿到地址欄中的參數
print(request.GET)
發現列印出來的是字典,所以——
print(request.GET.get('lan'))
【知識點】
列印字典中的值,有兩種辦法:
1,print(request.GET.get('lan'))——(一般用這個)假設key不存在,返回空值None
2,print(request.GET['lan'])——key不存在,會拋出異常
傳入多個值
print(request.GET.getlist('lan'))
獲取路由地址
如何來到get_request函數的(這個視圖函數)
print(request.path_info)
獲取請求方式(get/post)
print(request.method)
【知識點】
Django中地址欄預設是get請求,如果要發送post請求,需要把中間件的(選中的)註釋掉
【知識點】
post請求,往表單中傳入數據(用的postman)
獲取post請求的值
獲取value
假設表單中的值是這樣的:
先看看request.POST列印出什麼
拿到request.POST.get('b_title')
表單上傳
print(request.FILES)
(files裡面對應的是文件對象)
根據請求方式選擇路由
path('testgetpost', test_get_post),
# 根據不同的請求方式做不同的處理
def test_get_post(request):
if request.method == 'GET':
return HttpResponse('get請求')
elif request.method == 'POST':
# li = [1,2]
# print(li[2])
return HttpResponse('post請求')
else:
return HttpResponse(request.method)
響應對象——response
常見的狀態碼
200(響應成功)
500(python代碼有問題)
404(資源找不到)
405(請求不被允許)
301 302 (重定向,瀏覽器的行為)
給定響應頭
預設返回的頭信息
path('test_response_header',test_response_header),
def test_response_header(request):
ret = HttpResponse('test_response_header')
return ret
自定義頭信息
path('test_response_header',test_response_header),
def test_response_header(request):
# content-type是html類型
ret = HttpResponse('test_response_header')
# 自定義頭信息
ret['msg'] = 'success'
ret['code'] = 'ok'
return ret
其他響應對象
json 數據格式 解決前後端數據不認識的問題 {'key':value}
前後不分離項目 :前後端全部編寫,會經常使用HttpResponse對象
前後分離項目時使用: 會經常使用JsonResponse對象
json 數據格式
用途:一般做前後分離項目時使用
path('test_json_response', test_json_response),
def test_json_response(request):
# content-type是json類型
return JsonResponse(request.GET)
文件處理
path('test_file_response',test_file_response),
def test_file_response(request):
return FileResponse(open('manage.py','rb'))
return JsonResponse和return FileResponse的區別
return JsonResponse和return:返回值類型是Json
return FileResponse:返回值類型是文件的類型