役割:
ユーザ要求URLの種類やユーザーに受け入れ、最高のコンポーネントをレンダリングを選択します。
ユーザーはのURLを要求します。
http://127.0.0.1:8000/test/?format=json
http://127.0.0.1:8000/test.json
2つの組み込みレンダラ
ディスプレイJSON形式:JSONRenderer
アクセスURL:
http://127.0.0.1:8000/test/?format=json
http://127.0.0.1:8000/test.json
http://127.0.0.1:8000/test
デフォルトの表示形式:BrowsableAPIRenderer(あなたはそのhtmlファイルを変更することができます)
アクセスURL
http://127.0.0.1:8000/test/?format=api
http://127.0.0.1:8000/test.api
http://127.0.0.1:8000/test
表形式:AdminRenderer
アクセスURL:
http://127.0.0.1:8000/test/?format=admin
http://127.0.0.1:8000/test.admin
http://127.0.0.1:8000/test
フォームフォーム方法:HTMLFormRenderer
アクセスURL
http://127.0.0.1:8000/test/?format=from
http://127.0.0.1:8000/test.from
http://127.0.0.1:8000/test
三つの部分を使用します
rest_framework.renderers インポート HTMLFormRenderer、BrowsableAPIRenderer クラスBookDetailView(APIView):
renderer_classes = [HTMLFormRendererをBrowsableAPIRenderer]
DEF :(自己、リクエスト、PK)を取得 book_obj = models.Book.objects.filter(PK = PK)1次回() BSを = BookSerializers(book_obj、多くの= False)が 戻り応答(bs.data) デフ(自己、リクエスト、PK)入れ: book_obj = models.Book.objects.filter(PK = PK)1次回() のBS =のBookSerializers(データ= request.data、インスタンス= book_obj) 場合bs.is_valid(): bs.save() #の更新 リターン応答(bs.data) 他: リターン・レスポンス(bs.errors) デフ削除(自己、リクエスト、PK): models.Book.objects.filter(PK = PK).delete() の戻り応答("" )
4つのグローバル使用
コンフィギュレーションの設定には:
REST_FRAMEWORK = { ' DEFAULT_RENDERER_CLASSES ':[ ' rest_framework.renderers.JSONRenderer ' ] }
ファイブカスタム表示テンプレート:
rest_framework.renderers インポート TemplateHTMLRenderer クラスBookDetailView(APIViewを): renderer_classes = [TemplateHTMLRenderer] DEF :(自己、リクエスト、PK)を取得 book_obj = models.Book.objects.filter(PK = PK)1次回() のBS =のBookSerializers(book_obj 、多くの= False)が 戻り応答(bs.data、テンプレート名= ' aa.html ')
<!DOCTYPE HTML> <HTML LANG = " EN " > <HEAD> <メタ文字コード= " UTF-8 " > <タイトル>タイトル</ TITLE> </ HEAD> <BODY> {{タイトル}} {{publishDate} } </ BODY> </ HTML>
注:複数の存在の両方が自動的にURLサフィックスレンダラに基づいて選択した場合。