DRFフレームワークの概要-ビュー(RequestとResponse)

3652 ワード

RequestとResponse
Request
REST framework転送ビューのrequestオブジェクトは、DjangoのデフォルトのHttpRequestオブジェクトではなく、REST frameworkが提供するHttpRequestクラスを拡張したRequestクラスのオブジェクトです.
REST frameworkはParser解析器を提供しており、要求を受信するとContent-Typeが指定した要求データ型(JSON、フォームなど)に基づいて要求データをparse解析し、クラス辞書オブジェクトとしてRequestオブジェクトに保存するように解析する.
Requestオブジェクトのデータは,フロントエンド送信データのフォーマットに基づいて自動的に解析された結果である.
フロントエンドが送信するどのフォーマットのデータでも、データを統一的に読み取ることができます.
共通プロパティ
1) .data request.dataは、解析後の要求体データを返す.Djangoの標準と同様のrequest.POSTおよびrequest.FILESのプロパティですが、次のプロパティがあります.
  • は、解析後のファイルおよび非ファイルデータ
  • を含む.
  • は、POST、PUT、PATCH要求方式を解析するデータ
  • を含む.
  • REST frameworkのparsers解析器を利用し、フォームタイプデータのみならずJSONデータ
  • もサポート
    2).query_params request.query_paramsはDjango規格のrequest.GETと同じで、より正確な名前を変更しただけです.
    Response rest_framework.response.Response
    REST frameworkは、応答オブジェクトを構築する応答クラスResponseを提供し、応答の具体的なデータ内容は、フロントエンドの要件に適合するタイプに変換される.
    REST frameworkは、要求ヘッダのRenderer(データ型宣言の受信)に基づいて応答データを対応するフォーマットに自動的に変換するためのAcceptレンダラーを提供する.フロントエンドリクエストでAccept宣言が行われていない場合は、デフォルトで応答データが処理されます.デフォルトの応答フォーマットは、構成によって変更できます.
    REST_FRAMEWORK = {
        'DEFAULT_RENDERER_CLASSES': (  #        
            'rest_framework.renderers.JSONRenderer',  # json   
            'rest_framework.renderers.BrowsableAPIRenderer',  #   API   
        )
    }
    

    こうぞうモード
    Response(data, status=None, template_name=None, headers=None, content_type=None)
    
    dataデータはrender処理後のデータではなくpythonの組み込みタイプデータを渡すだけでよく、REST frameworkはrendererレンダラーを使用してdataを処理します.dataは、Djangoのモデルクラスオブジェクトのような複雑な構造のデータではありません.このようなデータについては、Serializerシーケンサシーケンス化処理後(Python辞書タイプに移行)dataパラメータに渡すことができます.
    パラメータの説明:
  • data:応答のために準備されたシーケンス化処理後のデータ;
  • status:ステータスコード、デフォルト200;
  • template_name:テンプレート名、HTMLRendererを使用する場合は指定する必要があります.
  • headers:応答ヘッダ情報を格納するための辞書;
  • content_type:応答データのContent-Type、通常このパラメータは伝達する必要はなく、REST frameworkはフロントエンドに必要なタイプのデータに基づいてこのパラメータを設定します.

  • 共通プロパティ
    1).data
    responseオブジェクトに転送されたシーケンス化後、renderが処理していないデータ
    2).status_code
    ステータスコードの数字
    3).content
    render処理後の応答データ
    ステータスコード
    ステータスコードの構成を容易にするために、RESTframeworkは、rest_framework.statusモジュールにおいて、通常の遷移ステータスコード定数を提供する.
  • 情報告知——1 xx
  • 成功-2 xx
  • リダイレクト-3 xx
  • クライアントエラー-4 xx
  • サーバエラー-5 xx