WebフロントエンドのVue + Djangoの残りのフレームワークフレーム新鮮な電気プロバイダプロジェクト戦闘ビデオチュートリアル☝☝☝

WebフロントエンドのVue + Djangoの残りのフレームワークフレーム新鮮な電気プロバイダプロジェクトの戦闘ビデオチュートリアル   

残りのフレームワークフレーム新鮮な電気プロバイダプロジェクトの戦闘ビデオチュートリアルを学ぶためのWebフロントエンドのVue +ジャンゴ

準備1.drf

公式文書の1.django-残りのフレームワーク

https://www.django-rest-framework.org/

直接Baiduのが見つかりました。djangorestframework 公式サイトがオープンされていません

2.インストールの依存関係

 

図に示すように、 Djangoは依存モジュールをrestframework、及びcoreapiジャンゴ・ガーディアンに加えて、前に設置されています。

ターミナルを開き、インストールコマンド

ピップジャンゴ・後見人をインストール

coreapiをインストールするPIP

3. rest_frameworkレジスタの設定

 

デバッグAPI 4.管理がurls.pyに使用されるURLの設定

 

django.urlsインポートパスから

 

django.views.staticインポートからサーブ

MxShop.settingsインポートMEDIA_ROOTから

django.urlsには、インポートから

 

輸入xadmin

 

rest_framework.documentationインポートinclude_docs_urlsから

 

goods.views輸入GoodsListViewから

 

urlpatterns = [

    パス( 'xadmin /'、xadmin.site.urls)

    経路( 'メディア/ <パス:パス>' { 'DOCUMENT_ROOT':MEDIA_ROOTを}、サーブ)

    パス( 'ueditor /'() 'DjangoUeditor.urls' を含みます)、

    パス( 'ドキュメント/'、include_docs_urls (タイトル= " ムーXuesheng新鮮"))、

    経路( 'API-AUTH /'( 'rest_framework.urls')を含みます)

    パス( '財/'、GoodsListView.as_view()、名前= '商品リスト')、

]

 

2.シリアライズ商品データ

では、商品の下に新しいserializers.pyファイルディレクトリ

 

rest_frameworkインポートシリアライザから

goods.models者からの製品、GoodsCategoryをインポート

 

 

クラスGoodsSerializer(serializers.Serializer):#シリアライザの実施形態は、シリアライズ

    名前= serializers.CharField(必要= Trueの場合、MAX_LENGTH = 100)

    click_num = serializers.IntegerField(デフォルト= 0)

    goods_front_image = serializers.ImageField()

 

    #ポスト

    デフ(自己、validated_data)を作成します。

        Goods.objects.createを返す(** validated_data)

 

 

クラスCategoryModelSerializer(serializers.ModelSerializer):

    クラスメタ:

        モデル= GoodsCategory

        フィールド=「__ __全て」#すべてのフィールドがあるシリアル化されたテーブル全体

 

 

クラスGoodsModelSerializer(serializers.ModelSerializer):#ModelSerializer 方式序列化

    カテゴリ= CategoryModelSerializer()#埋め込む外部キー情報

    クラスメタ:

        モデル=製品

        #フィールド=「__ __全て」 # すべてのフィールドがあるシリアル化されたテーブル全体

        フィールド=(「名前」、「 goods_front_image」、「カテゴリ」)# 特定のフィールドの特定のシーケンス

 

 

 3.ビューパッケージ

1. APIView +対応商品リストに戻る次へビュー(ネイティブジャンゴのCBV最重要指名手配の文言)を実装

中のviews.py

 

.serializersからGoodsSerializer、GoodsModelSerializerをインポート

rest_framework.views輸入APIViewから

rest_framework.response輸入レスポンスから

 

.models者からの製品をインポートします

rest_frameworkのインポートステータスから

 

 

クラスGoodsListView1(APIView):

    「」」

    すべての商品を一覧表示し、使用シリアライザ

    「」」

    デフ(自己、要求、フォーマット=なし)を取得:

        商品= Goods.objects.all()[10]

        goods_serializer = GoodsSerializer(財、多くの=真)

        レスポンス(goods_serializer.data)を返します

 

    デフポスト(自己、要求、フォーマット=なし):

        シリアライザ= GoodsSerializer(データ= request.data)

        )(serializer.is_valid場合:

            serializer.save()

            レスポンスを返す(serializer.data、ステータス= status.HTTP_201_CREATED)

        返すレスポンス(serializer.errors、ステータス= status.HTTP_400_BAD_REQUEST)

 

 

クラスGoodsListView2(APIView):

    「」」

    すべての商品を一覧表示し、使用ModelSerializer

    「」」

    デフ(自己、要求、フォーマット=なし)を取得:

        商品= Goods.objects.all()[10]

        goods_serializer = GoodsModelSerializer(財、多くの=真)

        レスポンス(goods_serializer.data)を返します

 

中のurls.py

 

django.contribインポート管理者から

django.urlsインポートパスから

 

django.views.staticインポートからサーブ

MxShop.settingsインポートMEDIA_ROOTから

 

輸入xadmin

goods.viewsからGoodsListView1、GoodsListView2をインポート

 

urlpatterns = [

    パス( '管理/'、admin.site.urls)、

    パス( 'xadmin /'、xadmin.site.urls)

    経路( 'メディア/ <パス:パス>' { 'DOCUMENT_ROOT':MEDIA_ROOTを}、サーブ)

    パス( 'ueditor /'() 'DjangoUeditor.urls' を含みます)、

 

    パス( '財/'、GoodsListView1.as_view()、名前= '商品リスト')、

    パス( 'goods2 /'、GoodsListView2.as_view()、NAME = '商品-LIST2')

]

 

 

2.ミックスイン+商品リストに戻る次へを達成するための汎用ビュー

 

.serializersからGoodsSerializerをインポート

.models者からの製品をインポートします

rest_frameworkインポートミックスインから

rest_framework輸入ジェネリックから

 

クラスGoodsListView(mixins.ListModelMixin、generics.GenericAPIView):

    「」」

    商品リストに戻る次へ

    「」」

  クエリセット= Goods.objects.get_queryset()ORDER_BY( 'ID')。[10]

  serializer_class = GoodsSerializer

  デフのget(自己、要求、* argsを、** kwargsから):

    リターンself.list(要求、* argsを、** kwargsから)

 

商品リストに戻る次へを達成する3. generics.ListAPIViewビュー

 

.serializersからGoodsSerializerをインポート

.models者からの製品をインポートします

rest_framework輸入ジェネリックから

 

クラスGoodsListView(generics.ListAPIView):

    「」」

    商品リストに戻る次へ

    「」」

    クエリセット= Goods.objects.get_queryset()。ORDER_BY( 'ID')

    serializer_class = GoodsSerializer

 

 4.ページング

1. [グローバル]タブ:、、設定内のすべてのページのリストを、コードを追加します。10ページあたりのページネーションとなり、重大な制限があることは明らかです

REST_FRAMEWORK = {

    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination'

    'PAGE_SIZE':10、

}

 2.ローカルカスタムタブ:ビュー内のカスタムコード

 

rest_framework.paginationインポートPageNumberPaginationから

 

クラスGoodsPagination(PageNumberPagination):

    PAGE_SIZE = 10

    page_size_query_param = 'PAGE_SIZE'

    page_query_param = 'P'

    MAX_PAGE_SIZE = 100

 

 

クラスGoodsListView(generics.ListAPIView):

    「」」

    商品リストに戻る次へ

    「」」

    クエリセット= Goods.objects.get_queryset()。ORDER_BY( 'ID')

    serializer_class = GoodsSerializer

    pagination_class = GoodsPagination

 

 5.viewsets

のビュー1.

 

rest_frameworkインポートビューセットから

 

クラスGoodsListViewSet(mixins.ListModelMixin、viewsets.GenericViewSet):

    「」」

    商品リストに戻る次へ

    「」」

    クエリセット= Goods.objects.get_queryset()。ORDER_BY( 'ID')

    serializer_class = GoodsSerializer

    pagination_class = GoodsPagination

 

内のURL 2.

goods.viewsからGoodsListViewSetをインポート

 

rest_framework.routersからdefaultrouterにインポートします

ルータ= defaultrouterに()

router.register(r'goods'、GoodsListViewSet、BASE_NAME = "物品")
urlpatterns = [パス( ''、が挙げられる(router.urls))]

 

おすすめ

転載: www.cnblogs.com/itye2/p/11704134.html