項目中一般會安裝不少模塊,爲了移植性更好,咱們可使用pipreqs模塊生成依賴包文檔。django
1.1 安裝pipreqs模塊api
pip install pipreqs
1.2 生成對應項目的路徑瀏覽器
切換至項目根目錄,或者是給一個項目的路徑:post
D:\youkutest\luffyapi>pipreqs ./ --encoding=utf8
上面項目名爲luffyapi,後面加--encoding=utf8是防止由於編碼問題報錯,建議加上。網站
1.3 新環境中安裝依賴包ui
將整個項目複製至新環境時,只需執行如下命令便可安裝依賴包,在此以前先在新環境中安裝pipreqs。編碼
pip install -r requriements.txt
注意:該模塊有時候沒法生成全部依賴包,部分可能須要本身手動裝的。url
freeze是pip自帶的生成依賴包的方法,推薦使用該方式,無需安裝其餘模塊。不過該方法也沒法生成全部依賴包,好比經過http安裝的xadmin等,通常這些模塊能夠運行項目時根據報錯的模塊信息安裝便可。spa
# 好比能夠寫pip freeze > requirement.txt pip freeze > 保存時的文件名.格式 # 安裝生成的依賴包,如pip install -r requirement.txt pip install -r 文件名.格式
工做中接口文檔的撰寫如何手寫很費時,djangorestframework爲咱們提供了自動生成接口文檔的方法,不過該方法只會生成直接或間接繼承APIView類的視圖的接口文檔。rest
2.1 安裝依賴包
pip install -i https://pypi.douban.com/simple/ coreapi
2.2 設置接口文檔訪問路徑
在總路由中添加接口文檔路徑,
from rest_framework.documentation import include_docs_urls urlpatterns = [ ... path('docs/', include_docs_urls(title='站點頁面標題')) ]
2.3 文檔描述說明的定義位置
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: 修改圖書的閱讀量 """
2.4 訪問接口文檔網頁
瀏覽器訪問 127.0.0.1:8000/docs/,便可看到自動生成的接口文檔。
1) 視圖集ViewSet中的retrieve名稱,在接口文檔網站中叫作read
2)參數的Description須要在模型類或序列化器類的字段中以help_text選項定義,如:
class Student(models.Model): ... age = models.IntegerField(default=0, verbose_name='年齡', help_text='年齡') ...
或
class StudentSerializer(serializers.ModelSerializer): class Meta: model = Student fields = "__all__" extra_kwargs = { 'age': { 'required': True, 'help_text': '年齡' } }