レスポンダ残りのフレームワーク(レンダラ)

 

役割:

  ユーザ要求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サフィックスレンダラに基づいて選択した場合。

おすすめ

転載: www.cnblogs.com/HUIWANG/p/11140090.html