すぐにAPI呼び出しサービスを実装するためにDRFの使用

最後の2019年3月19日夜04時55時ファン遠によって編集され、このポスト

の増加負荷オプションDjagno RESTフレームワークモジュール
INSTALLED_APPS settings.pyファイルが上昇する「rest_framework」アドオンのために。:REST APIは、サービスを呼び出す生成するには、このフレームワークを使用するには、次の3つのモジュールを達成する必要があり
シリアライザ:シリアライズ(またはデシリアライズ)する方法を決定するモデルエンティティ
ビューセット:シリアル化エンティティにどのモデルを決定し
、対応するためのURLを解決する方法を決定:URLパターンをサービス
に必要なコードの量は、最も基本的なサービスのAPIと、ああの多くを達成するためのようだが、このモジュール分割後、実際には多くの明確な枠組みプログラムとなり、より堅牢なスケーラビリティを持っています。
シリアライザが達成
新しいファイルのブログ/ serializer.pyを、次の通り:
#コーディング:UTF-8。
rest_frameworkインポートシリアライザからの
ユーザーが、エントリのインポートを.modelsから

クラスUserSerializer(serializers.ModelSerializer):
    クラスメタ- :
        モデル=ユーザー
        フィールド=(「名前''メール「)

クラスEntrySerializer(serializers.ModelSerializer):
    クラスメタ- :
        モデルは、エントリ=
        フィールドを=(「タイトル」、「体」、「のcreated_at」、「ステータス」、「著者」)

上記のシリアライザ最も簡単なコードの定義である、モデルはフィールドが順序を指定し、対応するモデルのエンティティを指定データフィールドの(データベーステーブルの列とみなします)。

  
これは、外部キー、デフォルト出力対応モデルエンティティ(ユーザー)の結果のシーケンスとして、EntrySerializerことを著者言及する価値があります。もちろん、我々は、実装のシーケンスを変更することができます。



ビューセットは達成
次のように、新しいファイルのブログ/ views.pyを:

#がコーディング:UTF 8
インポートdjango_filters
rest_frameworkインポートビューセットから、フィルタ
ユーザーはインポート、エントリ.modelsから
インポートUserSerializer、EntrySerializer .serializerから

クラスUserViewSet(viewsets.ModelViewSetを):
    = User.objects.allクエリセット()
    serializer_class = UserSerializer

クラスEntryViewSet(ビューセット。
    クエリセット= Entry.objects.all()
    serializer_class = EntrySerializer



实现URLパターン
修改django_rest_framework_test / urls.py、内容如下:

#のコード:UTF-8
django.conf.urlsからは、URLをインポート含ま
django.contribインポート管理者からの
ブログから。 blog_routerとしてのURLインポートルータ

urlpatterns = [
    URL(R '^管理/'、admin.site.urls)、
    する含んを#1 blog.urls
    URL(R 'を^ API /'、(blog_router.urls)を含む)
]

新建一个文件ブログ/ urls.py、内容如下:

#コード:UTF-8
rest_frameworkインポートルータから
.viewsからインポートUserViewSet、EntryViewSet

ルータ= routers.DefaultRouter()
router.register(r'users'、UserViewSet)
router.register(r'entries'、EntryViewSet)は

このURL定義されたパターンは、/ API / REST APIは、当社のサービスへの入り口完了する
ます。https://blog.csdn.net/gg_18826075157/article/details/72869974からの記事

おすすめ

転載: www.cnblogs.com/abdm-989/p/12003492.html