DRF(Django Rest Framework)


RESTfulとは

  • httpのurlおよびhttp法(GET、POST、PUT、DELETE)を用いる、APIをより毒性のある構造化系アーキテクチャ
  • にする.

    なぜDRFを使うのですか?


  • WebブラウザAPIは一般的です.開発を容易にする.

  • 認証ポリシーには、OAuth 1およびOAuth 2の追加パッケージが追加されている.

  • オートミール機能を提供します.(DB data -> JSON)

  • 良好なドキュメント化とコミュニティサポート.
  • Serializerは


    Serializerはシリアル化されたクラスで、ユーザーのデータベースにユーザープロファイル写真、電子メール、名前、性別があると仮定すると、ユーザーモデルインスタンスをJSONまたはDictionaryにシリアル化できます.
    user = User(email="[email protected]", name="user", sex="Female", profile_image="user.png")
    UserSerializer(user).data{
    	"email" : "[email protected]",
        "name" : "user",
        "sex" : "female",
        "profile_image" : "user.png"
    }
    モデルインスタンスは、
  • DRFのシーケンサによってシリアル化することができる.
  • 実際の使用では、ユーザ情報を開くURLが/serializer/user//を有し、このビューはuser id内の対応するモデルインスタンスの情報を返すと仮定する.
    これにより、/serializer/user/1/というURLを要求すると、ユーザidが1のユーザの情報がJSONとして応答する.
    ユーザプロファイルページにアクセスする際に使用するビューであれば、ユーザページに入る度にURLに該当ユーザのuser idを入力すれば、JSON形式で各ユーザの情報を受信することができる.

    ModelSerializer

    class UserSerializer(ModelSerializer):
    
        class Meta:
    
            model =	User
    
            fields = ("email", "name", "sex", "profile_image",)

  • DRFのModelSerializerを使用すると、各モデルインスタンスを簡単にシーケンス化できます.model to dictはいらない!

  • モデルの格納時にデータが有効かどうかを確認できるため、データベース情報の格納時にSerializerが最も多く使用されます.