執行pip install djangorestframework
安裝drf
:# 1.查詢
books=book.objects.
all(
)# 2.資料轉換
)jsonresponse(book_list,safe=false)
為什麼加safe=false?
檢視原始碼可知,safe預設時且非dict型別時會丟擲typeerror異常
def
__init__
(self, data, encoder=djangojsonencoder, safe=
true
, json_dumps_params=
none
,**kwargs)
:if safe and
notisinstance
(data,
dict):
raise typeerror(
'in order to allow non-dict objects to be serialized set the '
'safe parameter to false.'
)
**注意:**post請求url結尾加上』/』
:"""新增資料"""
#1.獲取引數
dict_data=json.loads(request.body.decode())
# json(字串)轉dict
# print(request.body.decode())# 位元組utf8編碼後(漢字)
# print(request.body)# 位元組
# 引數會在資料校驗中用到,這裡資料校驗省略
title=dict_data.get(
'title'
) publish=dict_data.get(
'publish'
) comment=dict_data.get(
'comment'
) read=dict_data.get(
'read'
)# 2.資料校驗(省略)
# 3.資料入庫
book=book.objects.create(
**dict_data)
# 4.返回響應
# url get請求結尾要加'/' post請求結尾要加'/'
views.py
class
bookdetailview
(view)
:def
get(self,request,pk)
:# 1.獲取物件
book=book.objects.get(pk=pk)
# 2.返回響應
:# 1.獲取資料
dict_data = json.loads(request.body.decode())
# 2.更改資料庫
book.objects.
filter
(pk=pk)
.update(
**dict_data)
# 更改操作
book = book.objects.get(pk=pk)
# 獲取更改之後的物件
book_dict =
# 3.返回響應
:# 1.獲取要刪除的物件
book=book.objects.get(pk=pk)
book_dict =
# 2.執行刪除
book.delete(
)# 3.返回響應
# book_dict初始化放在這裡會使id=null
DRF 序列化的基本使用
model.py from django.db import models class role models.model title models.charfield max length 32 在 role 表中建立資料 方法一 平常的方法 將資料轉為列表 roles list roles 將資...
儲備學習drf的基本認知
http協議 基於tcp協議 http協議 基於tcp協議 應用層協議 請求與響應規範 首行 頭 體 特點 無狀態 無連線 請求永遠是客戶端到伺服器端 ssl 無狀態 http無狀態協議,是指協議對於互動性場景沒有記憶能力。伺服器中沒有儲存客戶端的狀態,客戶端必須每次帶上自己的狀態去請求伺服器 無連...
DRF十大元件使用
23 request.request.post.get json資料格式 data json.loads request.body.decode utf 8 name data.get name age data.get age print name,age 使用drf解析器 from rest f...