DRF+Reactを使用してブログを作成(4)モデルSerializerをパブリッシュし、Viewを使用して+Urls接続を作成
この文章はボリューム調整に失敗したので、内容が長いです...ゆっくりカットして読むことをお勧めします.
前に作成したPost、Comment、Seriesモデルに対応するSerializerおよびviewを作成します.
開始前にヒントを与えるなら、SerializerとViewsに対してその構造を学ぶのが一番の学習方法です.操作方法を直接学ぶことができるからです.ここでは、良いサイトを紹介します.
私がDRFを習い始めた頃から使っていましたが、今も使っています!知らないことがあるたびに、私たちは中に入って構造を見ています.
Django-rest-frameworkの基本フレームワークに含まれるインプリメンテーションは、querysetやmodel instanceをJSONなどの形式で簡単にレンダリングできます.また、JSON形式で入力したデータを対象形式に変換するDeserialization機能を提供し、入力データに対して検証作用を実行します.
board/serializers.pyファイルを作成し、コードを記述します.
まずrest frameworkが提供するシーケンス化器機能と以前に作成したモデルをインポートし、作成を開始します.
Comment Serializer
Serializerには様々な形式がありますが、現在のように1つのモデルに直接関係するSerializerはModelSerializerを使用すると便利です.
コードはご覧のように簡単です.Model Serializerを使用する場合は、Meta classを定義してモデルを指定し、Serializerが書き込むフィールドをフィールドに入れるだけです.
指摘したいのは、上記の注釈のコードは実際に書かなくてもあまり関係ありません.userもpostも外部キーフィールドなので.ただ、シーケンサのデータを呼び出すときに違いがあります.
これが少なくなければ
、これが少なければ.
個人的に書く傾向がある場合は,上記のコードでコメント処理を行った. PostとSeries Serializer
この点を指摘したのは新しい内容だけだ.2つのSerializerはいずれもSerializerFieldで異なるSerializerを受信していることがわかる.このような体現をNestedSerializerと呼ぶ.理解のために一例を挙げる.
PostとSeriesはN:1の関係であるため、PostにはSeriesと呼ばれるフィールド(Series)があり、Seriesには複数のPostフィールド(posts)がある.この場合、postsフィールドをPostSerializerとして指定し、multi=Trueとread only=Trueを与えることで1:N関係を簡単に表すことができる.
DjangoではMVCがMTVとして表現される.モデル-テンプレート-ビュー、位置ビュー->テンプレート、コントローラ->ビュー.つまり、DjangoのViewはコントローラとして機能し、モデルとテンプレートを接続します.ついて来い!ビューにはCRUDのビジネスロジックが含まれており、ビューを介してのみCRUDを作成できます.
非常に幸せな物語といえば、DRFはViewsetという美しい機能を提供しています.私はすぐにこれがどうしてきれいなのか見に来ました.(Viewsより良い)
その前に必要なものを輸入しましょう.ファイルはboard/viewsです.Pyです.
SeriesViewSet
一番簡単です.Serializerと同様にModelViewSetというものが存在し,これはViewSetの機能がモデルのCRUDであれば非常に効率的であることを示している.
ModelViewSetの場合、要求メソッドに応じて異なるタスクが実行されます.
POST -> Create
GET -> Read
PUT -> Update
DELETE -> Delete
ビューを使用して異なるビューを作成しますが、ModelViewSetを使用すると、この4つの状況を同時に処理できます.
この部分は理解しなくても大丈夫です.もう1,2編の文章を読めば理解できる.
以上の3行でSeriesViewSetを完了します.ModelViewSetの場合、querySetとserializer classを指定する必要があります.あとはURLに接続すれば、直接CRUD Seriesができます. PostViewSet
perform create関数を上書きするコードが追加されました.このperform createは、作成した中間プロシージャを実行する関数です.書き換えの原因はPostにユーザを注入するためである.
これは後でですが、sessionidを使用して認証を行い、もしそうであれば要求します.userにより,userが誰であるかを知ることができ,他の入力を受け入れずに,このuserを文章の著者に注入する.
CommentViewSet
perform create overrideでユーザーを注入するのは同じですが、postも追加で注入されます.自己kwargsによってpost idを受信する部分は、以下のurlsでさらに説明する.
このセクションでは、作成されたRest APIのエンドポイントを提供します.すなわち、サーバが解放されると、要求がAというUrlに入ると、Bというビューが接続される.
まずコードに従って書きましょう.
このURL.pyはルートURL、その他のURLです.pyで書いたurlを1つの場所に集約する私たちは取締役会です.urlsにurlを作成し、事前に接続します.
ビューセットを利用するメリットはこれですRouter機能によりurl接続が非常に簡単に行えます.関連情報は上のリンクで学ぶことができます.
上のCommentでselfを選択します.kwargsを使用する部分はこの行です7が出てきました
line. 7 CommentViewSetに関連付けられたURLが「post/[post id]/comment」と表示されます.すなわち,そのurlからcommentにアクセスできる,すなわち,要求が来たときにurlにpost idを知るように要求する.したがって,kwargsで受信し,そのPostをComment createに注入した場合の形式である.
プロジェクトrootでサーバを開き、接続が正しいことを確認します.
CRUDが正常に動作していることを確認するために、Insomniaというツールがインストールされていることを確認します.
しかし、ユーザ生成ロジックが実装されていないため、ユーザを提供できず、PostとCommentはCRUD機能を検証できない.
そこで、Seriesでチェックしてみましょう. POSTによる
の作成 GET法により生成するシリーズ
を決定する. PUT法による検証シリーズ修正
GET法により修正された一連の決定
DELETEメソッドによりシリーズ
を削除再びGET法により最終確認
こうしてCRUDの実装に成功!
今では模型を自由に操作することができます.思ったより簡単かな?
次の記事では、User Accountを操作します.
前に作成したPost、Comment、Seriesモデルに対応するSerializerおよびviewを作成します.
開始前にヒントを与えるなら、SerializerとViewsに対してその構造を学ぶのが一番の学習方法です.操作方法を直接学ぶことができるからです.ここでは、良いサイトを紹介します.
私がDRFを習い始めた頃から使っていましたが、今も使っています!知らないことがあるたびに、私たちは中に入って構造を見ています.
Serializer
Django-rest-frameworkの基本フレームワークに含まれるインプリメンテーションは、querysetやmodel instanceをJSONなどの形式で簡単にレンダリングできます.また、JSON形式で入力したデータを対象形式に変換するDeserialization機能を提供し、入力データに対して検証作用を実行します.
board/serializers.pyファイルを作成し、コードを記述します.
まずrest frameworkが提供するシーケンス化器機能と以前に作成したモデルをインポートし、作成を開始します.

Serializerには様々な形式がありますが、現在のように1つのモデルに直接関係するSerializerはModelSerializerを使用すると便利です.

コードはご覧のように簡単です.Model Serializerを使用する場合は、Meta classを定義してモデルを指定し、Serializerが書き込むフィールドをフィールドに入れるだけです.
指摘したいのは、上記の注釈のコードは実際に書かなくてもあまり関係ありません.userもpostも外部キーフィールドなので.ただ、シーケンサのデータを呼び出すときに違いがあります.


個人的に書く傾向がある場合は,上記のコードでコメント処理を行った.

この点を指摘したのは新しい内容だけだ.2つのSerializerはいずれもSerializerFieldで異なるSerializerを受信していることがわかる.このような体現をNestedSerializerと呼ぶ.理解のために一例を挙げる.
PostとSeriesはN:1の関係であるため、PostにはSeriesと呼ばれるフィールド(Series)があり、Seriesには複数のPostフィールド(posts)がある.この場合、postsフィールドをPostSerializerとして指定し、multi=Trueとread only=Trueを与えることで1:N関係を簡単に表すことができる.
Views
DjangoではMVCがMTVとして表現される.モデル-テンプレート-ビュー、位置ビュー->テンプレート、コントローラ->ビュー.つまり、DjangoのViewはコントローラとして機能し、モデルとテンプレートを接続します.ついて来い!ビューにはCRUDのビジネスロジックが含まれており、ビューを介してのみCRUDを作成できます.
非常に幸せな物語といえば、DRFはViewsetという美しい機能を提供しています.私はすぐにこれがどうしてきれいなのか見に来ました.(Viewsより良い)
その前に必要なものを輸入しましょう.ファイルはboard/viewsです.Pyです.

一番簡単です.Serializerと同様にModelViewSetというものが存在し,これはViewSetの機能がモデルのCRUDであれば非常に効率的であることを示している.
ModelViewSetの場合、要求メソッドに応じて異なるタスクが実行されます.
POST -> Create
GET -> Read
PUT -> Update
DELETE -> Delete
ビューを使用して異なるビューを作成しますが、ModelViewSetを使用すると、この4つの状況を同時に処理できます.
この部分は理解しなくても大丈夫です.もう1,2編の文章を読めば理解できる.


これは後でですが、sessionidを使用して認証を行い、もしそうであれば要求します.userにより,userが誰であるかを知ることができ,他の入力を受け入れずに,このuserを文章の著者に注入する.

perform create overrideでユーザーを注入するのは同じですが、postも追加で注入されます.自己kwargsによってpost idを受信する部分は、以下のurlsでさらに説明する.
Urls接続
このセクションでは、作成されたRest APIのエンドポイントを提供します.すなわち、サーバが解放されると、要求がAというUrlに入ると、Bというビューが接続される.
まずコードに従って書きましょう.
blog_back/urls.py

このURL.pyはルートURL、その他のURLです.pyで書いたurlを1つの場所に集約する私たちは取締役会です.urlsにurlを作成し、事前に接続します.
board/urls.py

ビューセットを利用するメリットはこれですRouter機能によりurl接続が非常に簡単に行えます.関連情報は上のリンクで学ぶことができます.
上のCommentでselfを選択します.kwargsを使用する部分はこの行です7が出てきました
line. 7 CommentViewSetに関連付けられたURLが「post/[post id]/comment」と表示されます.すなわち,そのurlからcommentにアクセスできる,すなわち,要求が来たときにurlにpost idを知るように要求する.したがって,kwargsで受信し,そのPostをComment createに注入した場合の形式である.
サーバの起動と検証
プロジェクトrootでサーバを開き、接続が正しいことを確認します.
pipenv shell
cd blog_back
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
前回モデル作成後にmigrateが行われなかったため、完了後にサーバを開きます.その後127.0.0.1:8000で接続すると、次のような画面が表示されます.
CRUDが正常に動作していることを確認するために、Insomniaというツールがインストールされていることを確認します.
しかし、ユーザ生成ロジックが実装されていないため、ユーザを提供できず、PostとCommentはCRUD機能を検証できない.
そこで、Seriesでチェックしてみましょう.






今では模型を自由に操作することができます.思ったより簡単かな?
次の記事では、User Accountを操作します.
Reference
この問題について(DRF+Reactを使用してブログを作成(4)モデルSerializerをパブリッシュし、Viewを使用して+Urls接続を作成), 我々は、より多くの情報をここで見つけました https://velog.io/@heyday_7/DRFReact로-Blog유사-velog-만들어보기-4-게시글-모델-Serializer-View-만들기-Urls-연결テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol