DRF框架入門 二

2021-09-24 06:19:00 字數 3644 閱讀 6417

request和response

response類

三種基本序列化字段方式

from rest_framework import serializers

from goods.models import goodsinfo

# 定義一些序列號程式

class

goodsinfoserializer

(serializers.modelserializer)

:# 建立序列化器

class

meta

:# 定義元類

# model指明了當前的序列化器和哪個模型產生聯絡

model = goodsinfo

fields =

'__all__'

# 意思是所有的字段都要

# 這樣寫是自己選擇需要的字段

# fields = ('url', 'username', 'email', 'groups')

class

goodsinfoser

(serializers.modelserializer)

:class

meta

:#model指明了當前的序列化器產生聯絡

model = goodsmodel

#下面所有欄位都以模型為對應

#fields指明的是需要那些字段

fields =

'__all__'

#所需要的字段

fields =

('id'

,'name'

,'pub_date'

,'readcount'

)#不需要的字段

exclude =

('is_delete',)

#唯讀 read_only_field =

()

指定巢狀序列化

用於有外來鍵的資料庫,設定depth為整數,通常為1

from user.models import userinfo

from rest_framework import serializers

class

userautoserializers

(serializers.modelserializer)

:class

meta

: model = userinfo

fields =

'__all__'

depth =

1

用shell除錯結果為:

>>

>

from user.serializers import

*>>

> ser = userautoserializers(

)>>

> ser

userautoserializers():

id= integerfield(label=

'id'

, read_only=

true

) name = charfield(max_length=20)

password = charfield(max_length=

20, required=

false

) phone = charfield(max_length=11)

addkey = nestedserializer(read_only=

true):

id= integerfield(label=

'id'

, read_only=

true

) add = charfield(max_length=50)

>>

>

指定字段序列化(覆蓋)

class

accountserializer

(serializers.modelserializer)

: url = serializers.charfield(source=

'get_absolute_url'

, read_only=

true

) groups = serializers.primarykeyrelatedfield(many=

true

)class

meta

: model = account

想要指定readonly欄位還有第二個meta選項,read_only_fields.:

read_only_fields =

('account_name'

,)

還有乙個快捷方式,允許您在字段上指定任意附加關鍵字引數,使用extra_kwargs選擇。如在.的情況下read_only_fields,這意味著不需要顯式宣告序列化程式上的字段。

class

meta

: model = user

fields =

('email'

,'username'

,'password'

) extra_kwargs =

}

就是httprequest的擴充套件功能

request.data返回請求主體的解析內容(可以解析各種型別請求包括post等)。這與標準類似。request.post和request.files屬性除外:

它包括所有已解析的內容,包括檔案和非檔案投入。

它支援解析除http之外的http方法的內容post,這意味著您可以訪問put和patch請求。

它支援rest框架靈活的請求解析,而不僅僅是支援表單資料。例如,您可以處理傳入表單資料的方式處理傳入的json資料。

.query_params:

相當於request.get,但是任何http方法型別都可能包含查詢引數,而不僅僅是get請求

資料型別可以是str,list,dict等

):data:為響應準備的序列化之後的資料,status是狀態碼,template_name模板的名稱

headers:響應頭資訊,content_type:一般不需要指定,框架根據前端傳遞的資訊來指定

php CI框架入門

顯示2.控制器認識 controller是框架控制器資料夾 我們來寫一下自己的控制器,控制器檔名要和類名一直,類名首字母大寫 test.php檔案 defined basepath or exit no direct script access allowed class test extends ...

SSH框架入門

目前最新版本是spring framework 2.5.6 with dependencies.zip,該包不僅包含spring的開發包,而且包含spring編譯和執行所依賴的第三方類庫 aspectj 該路徑下包含了spring支援aspectj所需類的源 也包含了相關測試用例檔案 dist 該資...

Tigo框架入門

給大家介紹乙個go語言的web framework,tigo框架。tigo框架的設計風格有點類似於tornado,從python轉go的小夥伴可以看看。首先,安裝 go get github.com karldoenitz tigo 安裝結束後來編寫乙個簡單地hello world,如下 url路由...