ルーティング
図1に示すように、書かれた第1のルーティング - オリジナル方法
このように、フロントにある書き込まれています。
urls.py
django.conf.urlsのインポートURL から app01 インポートビュー urlpatterns = [ URL(R ' ^ブック/ $ ' 、views.BookView.as_view())、 URL(R " ^冊/(?P <PK> \ D +) $ " 、views.BookDetailView.as_view())、 ]
views.py
クラスBookView(APIView): デフ(自己、リクエスト)を取得: book_list = models.Book.objects.all() BS = BookSerializers(book_list、多くの= 真) の戻り応答(bs.data) デフ(自己、リクエストを)投稿: #添加一条数据 プリント(request.data) BS = BookSerializers(データ= request.data) の場合bs.is_valid(): bs.save() #生成记录 リターン応答(bs.data) 他: リターン・レスポンス(bs.errors ) クラスBookDetailView(APIView): DEF :(自己、リクエスト、PK)を取得 book_obj = models.Book.objects.filter(PK = PK)1次回() BS = BookSerializers(book_obj、多くの= False)が 戻り応答(bs.data) DEF 置く(自己、リクエスト、PK): book_obj = models.Book.objects.filter(PK = PK)1次回() BS = BookSerializers(データ= request.data、インスタンス= book_obj) 場合bs.is_valid(): BS .SAVE() #の更新 リターン応答(bs.data) 他: リターンレスポンス(bs.errors) デフ削除(自己、リクエスト、PK): models.Book.objects.filter(PK = PK).delete() の戻り応答("" )
図2に示すように、第2の経路の文言-半自動モード(図クラス継承ModelViewSet)
settings.py登録 'rest_framework'
serializer.py
rest_framework.serializers インポートModelSerializerを から app01 輸入モデル クラス:PublishSerializers(ModelSerializer) クラスのMeta: モデル = models.Publish フィールド = " __all__ "
models.py
django.db 輸入モデル #ここにあなたのモデルを作成します。 クラスは、公開(models.Model): 名前 = models.CharField(MAX_LENGTH = 32 ) 都市 = models.CharField(MAX_LENGTH = 64)
makemigrations
移行
views.py
django.shortcuts インポートレンダリング から app01 輸入モデル から app01 輸入シリアライザ から rest_framework.viewsの輸入 APIView から rest_framework.responseの輸入 レスポンス から rest_framework.viewsets インポートModelViewSet #路由的第二种写法: クラスPublishView(ModelViewSet): クエリセット = モデル。 Publish.objects.all() serializer_class = serializer.PublishSerializers
urls.py
django.conf.urls インポートURL から django.contribの輸入管理を から app01 インポートビュー urlpatterns = [ URL(R ' ^管理/ ' 、admin.site.urls)、 URL(R ' / $パブリッシュ^ '、views.PublishViewを.as_view({ ' 得る':' リスト'、' ポスト':' 作成' }))、 URLを(R ' ^(パブリッシュ/ P <PK> \ D +?)$ '、views.PublishView.as_view({ ' 得る':' 検索'、' 削除':' 破壊する'、' PUT ':' 更新' }))、 ]
テスト:
図3に示すように、第3の経路書き込ま - 自動生成
views.py
django.shortcuts インポートレンダリング から app01 輸入モデル から app01 輸入シリアライザ から rest_framework.viewsの輸入 APIView から rest_framework.responseの輸入 レスポンス から rest_framework.viewsets インポートModelViewSet #必须继承ModelViewSet才可以用这种方式的路由 クラスPublishView(ModelViewSet): クエリセット = models.Publish.objects.all() serializer_class = serializer.PublishSerializers
urls.py
django.conf.urls インポートURLが含ま から django.contrib インポートADMIN から app01 インポートビュー から rest_framework.routers インポートSimpleRouter、defaultrouterに #defaultrouterに自動的に4方路を生成するステップと、SimpleRouter自動的に生成された二つの経路 #ルータSimpleRouter =() ルータ= defaultrouterに() #の登録、パスが公開 router.register(' 公開' 、views.PublishView) urlpatterns = [ URL(R&LT ' ^ ADMIN / ' 、admin.site.urls) #URL(R '^ / $公開'、views.PublishView.as_view({ '取得': 'リスト'、 'ポスト': '作成'}))、 #の?URL(R '^は(P <PK /パブリッシュ> \ D +)$」、views.PublishView.as_view({ '取得': '検索'、 '削除': '破棄'、 'PUT': '更新'}))、 URL(rは'' 、は、(ルータ.urls)) ]