drf分頁器與生成介面文件

2021-10-08 03:39:59 字數 2942 閱讀 6605

在drf中有三種分頁器,分別是pagenumberpagination,limitoffsetpagination,cursorpagination

pagenumberpagination分頁器

class

mypagenumberpagination

(pagenumberpagination)

: page_size=

3#每頁條數

page_query_param=

'aaa'

#查詢第幾頁的key

page_size_query_param=

'size'

# 每一頁顯示的條數

max_page_size=

5# 每頁最大顯示條數

limitoffsetpagination分頁器

class

mylimitoffsetpagination

(limitoffsetpagination)

: default_limit =

3# 每頁條數

limit_query_param =

'limit'

# 往後拿幾條

offset_query_param =

'offset'

# 標桿

max_limit =

5# 每頁最大幾條

cursorpagination分頁器

cursor_query_param =

'cursor'

# 每一頁查詢的key

page_size =

2#每頁顯示的條數

ordering =

'-id'

#排序字段

自定義的分頁器定義完了之後應該這麼寫

# class bookview(listapiview):

# # queryset = models.book.objects.all().filter(is_delete=false)

# queryset = models.book.objects.all()

# serializer_class = bookmodelserializer

# #配置分頁

# pagination_class = mycursorpagination

# 如果使用apiview分頁

from utils.throttling import mythrottle

class

bookview

(apiview)

:# throttle_classes = [mythrottle,]

defget

(self,request,

*args,

**kwargs)

: book_list=models.book.objects.

all(

)# 例項化得到乙個分頁器物件

page_cursor=mypagenumberpagination(

) book_list=page_cursor.paginate_queryset(book_list,request,view=self)

next_url =page_cursor.get_next_link(

) pr_url=page_cursor.get_previous_link(

)# print(next_url)

# print(pr_url)

book_ser=bookmodelserializer(book_list,many=

true

)return response(data=book_ser.data)

# 1 安裝:pip install coreapi

# 2 在路由中配置

from rest_framework.documentation import include_docs_urls

urlpatterns =[.

..path(

'docs/'

, include_docs_urls(title=

'站點頁面標題'))

]#3 檢視類:自動介面文件能生成的是繼承自apiview及其子類的檢視。

-1 ) 單一方法的檢視,可直接使用類檢視的文件字串,如

class

booklistview

(generics.listapiview)

:"""

返回所有圖書資訊.

"""-2

)包含多個方法的檢視,在類檢視的文件字串中,分開方法定義,如

class

booklistcreateview

(generics.listcreateapiview)

:"""

get:

返回所有圖書資訊.

post:

新建圖書.

"""-3

)對於檢視集viewset,仍在類檢視的文件字串中封開定義,但是應使用action名稱區分,如

class

bookinfoviewset

(mixins.listmodelmixin, mixins.retrievemodelmixin, genericviewset)

:"""

list:

返回圖書列表資料

retrieve:

返回圖書詳情資料

latest:

返回最新的圖書資料

read:

修改圖書的閱讀量

"""

drf 自動生成介面文件

1借助於第三方 coreapi,swagger 先安裝好這兩個模組 2在路由中 此處省略了自動生成的students路由 path docs include docs urls title 圖書管理系統api path books views.booklistcreateview.as view 3...

DRF 自動生成介面文件

rest framework可以自動幫助我們生成介面文件。介面文件以網頁的方式呈現。自動介面文件能生成的是繼承自apiview及其子類的檢視。rest framewrok生成介面文件需要coreapi庫的支援 pip install coreapi 在總路由中新增介面文件路徑。文件路由對應的檢視配置...

drf 自動生成介面文件

rest framewor可以自動幫助我們生成介面文件 介面文件以網頁的方式呈現 自動介面文件能生成的是繼承自apiview及其子類的檢視 rest framewrok生成介面文件需要coreapi庫的支援。pip install coreapi在總路由中新增介面路徑 文件路由對應的檢視配置為res...