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は、解析後のファイルおよび非ファイルデータ を含む.は、POST、PUT、PATCH要求方式を解析するデータ を含む. REST frameworkのparsers解析器を利用し、フォームタイプデータのみならずJSONデータ もサポート
2).query_params
Response
REST frameworkは、応答オブジェクトを構築する応答クラス
REST frameworkは、要求ヘッダの
こうぞうモード
パラメータの説明:
共通プロパティ
1).data
responseオブジェクトに転送されたシーケンス化後、renderが処理していないデータ
2).status_code
ステータスコードの数字
3).content
render処理後の応答データ
ステータスコード
ステータスコードの構成を容易にするために、RESTframeworkは、情報告知——1 xx 成功-2 xx リダイレクト-3 xx クライアントエラー-4 xx サーバエラー-5 xx
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
のプロパティですが、次のプロパティがあります.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
モジュールにおいて、通常の遷移ステータスコード定数を提供する.