[python] DJangoでAPI的なものを作る その4 登録部分を作る

思い出しつつ整理しながらBlogを書いていたら、調べている最中に出来なかったことができるようになったりならなかったり。

前回、すでに登録されているものを取得する部分はできたので、今度は登録する部分を作ってみます。

まずはurls.pyにsetできるURLを追加します。

次にviews.pyに、上で指定したクラスを作成して、中身を書きます。

こんな感じのクラスを追加しました。
前回は、URLのGETでは値をなにも渡していないですが
今回は登録するタスク名とステータスを渡します。
GETの場合は、 request.GET で Dict型で数値を取得することができます。

http://localhost:8000/api/set?task_name=名前&status=完了

GETで数値を渡す場合は、apiのURL+?+変数名=値&変数名2=値2 のような形にします。

いまのままだとシリアライザがだめなので、シリアライザも直します。

createを追加しました。
GETで受け取った内容を受け取ると、処理をしてTaskのオブジェクトを返してくれます。
serializer側でsaveしても良い気がするんですけど、サンプルを見るとview側で
saveしている例もあって、この辺切り分けはどうしたらいいのかはいまいちよく分かりません。

ForeignKeyを使用している部分は、Statusの中になければ新しく追加 あるならば、すでにあるものを取得してセットしています。

とりあえず、これで登録部分はOKです。
登録部分作成は取得に比べてえらく時間がかかった記憶があったのですが
やり直してBlogを書いていたらわりとあっさりできて拍子抜けでした。
やっぱり理解するまでが大変ってことですね(汁

次は、上のAPIを使用してPySideを使った簡単なツールを作る+requests周りについてまとめようかと思います。

Django楽しいなぁ

コメントを残す

メールアドレスが公開されることはありません。


*