[python] DJangoでAPI的なものを作る その5 APIにアクセスするPySideのツールを作る

前回までで、とりあえずWeb側は出来たので、それにアクセスするツールをつくってみます。

まず、QtDesignerでさくっとUIを作ります。

taskTool_01

こんな感じ。
.uiファイルは → これ
上側のTreeViewに、タスクの一覧を表示
下で入力した内容を登録 できるようにします。

まず、入力のステータス部分に現在登録されているステータスの一覧を入れられるように
APIにStatus一覧を取ってくるViewを追加します。

http://localhost:8000/api/task_info?info_type=status

とすると、List型でステータスの取得ができるようにしました。(urls.pyは割愛)

次は、ツールのURLのアクセス部分。
アクセス部分には requests モジュールを使用します。
デフォルトだと入っていないので、 pipでインストールしておきます。
使い方は

こんな感じに、引数にURLとパラメーターを渡して
返値を取得すればOKです。

アクセス部分のクラスを作ります。
r.content で取得した値は文字列なので、jsonモジュールを使用してDict型やList型に変換し
その結果を返すようにします。
status_codeで、APIが正しく実行されたか判別して 正しく動いた場合は結果を
そうじゃない場合はNoneを返すようにしてみました。

さいごにUI部分

一応ぜんぶのコードは → これ

とりあえずこれでAPIを作って、PySideで作った単独ツールで取得するまでできました。
はじめはかなり手間取りましたが、分かってくるとテーブルを増やしたり、APIの取得パラメーターをいろいろと拡張したりできてものすごい便利だなぁと思いました。

自分の用途的には単独ツールで実行出来るAPIがあればいいやって思ってましたが
せっかくなので今度はWebページ上で登録したり、一覧を表示できるようにしたり
Ajaxをつかったりみたいな事を試せればいいかなぁと思います。

次は、ManyToManyをつかったりするあたりをまとめようと思います。
ひとかたまりのツールが出来たから、試しにGitHubにアップしてみようかな

まとめてGitHubにアップしてみました → これ

Git自体は使ってるんですが、GitHubははじめてまともにUP…使い方も少しずつ勉強せねば。

コメントを残す

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


*