DRF基本使用

2021-10-10 13:22:11 字數 3947 閱讀 2301

執行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...