在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...