PyCon JP 2014参加レポート

第2回 1日目の注目セッション─Django活用,Pythonによる分析と最適化,MicroPython,PythonでのXML-RPC

この記事を読むのに必要な時間:およそ 3.5 分

第2回は,カンファレンス1日日のセッションを中心にお届けします。

Djangoによるスマホアプリバックエンドの実装

はじめにYuichi Nakazawa氏とKazuhiko Kakita氏によるスマホアプリのバックエンド実装に関するセッションを紹介します。現在,両氏とも長野県で働いており,またGEEKLAB.NAGANOというオープンスペースの管理人をしているとのことでした。長野県に行ったときには,ぜひ立ち寄りたいと思います。

まずは導入部分で,スマホアプリのバックエンドを構築する際のDjangoのメリットとして,学習コストが低いことや,管理サイトが秀逸であることを紹介していました。Djangoのadmin機能を利用すると,アプリケーションの管理サイトを簡単に構築できて,かつ機能も十分なので,APIを中心とするサービスには非常に適していると思いました。

次にCMS構築の例を元に,DjangoのORMの紹介および実例を説明しました。実際にDjangoのリレーションでできる事の紹介,またモデルの継承などについてわかりやすく説明していました。特に一般化リレーションについては,ドキュメントから探すのが難しい内容を解説しており,新しい発見がありました。Django1.7から搭載されるマイグレーション機能にも触れており,今後使用する場合の参考になりそうでした。

Yuichi Nakazawa氏とKazuhiko Kakita氏の講演 ©PyCon JP

Yuichi Nakazawa氏とKazuhiko Kakita氏の講演 ©PyCon JP

リレーション
  • 多対一のリレーション
  • 多対多のリレーション
  • エクストラフィールドで多対多のリレーション
  • 一対一のリレーション
モデルの継承
  • 抽象ベースクラス(親は実体を持たない)
  • マルチテーブル継承(親も子も実体をもつ)
  • プロキシモデル(子は実体を持たない,子は項目追加できない,親のメソッドの拡張に)
一般化リレーション
  • いろいろなモデル親モデルにタグを付けたい場合などに使用する
マイグレーション
  • Django1.7から標準に
  • syncdbではなく,migrate,createsuperuserを使用する。

次にAPI開発の実装のお話になりました。実際の開発ではサードパーティ製のRESTfulなライブラリではなく,自前でJSONを返す処理を実装したそうです。APIを実装する場合に必要な機能である,POST処理,プッシュ通知,ログイン連携などの方法にふれ,また公開するときの事例を紹介しており非常に参考になるセッションでした。今後私もアプリのバックエンドを実装する機会があるので,ぜひ参考にしたいと思います。

実例およびライブラリ
  • OrderedDictを使用(JSONのレスポンスに順序を付けるため)
  • スマホ側でデータをPOSTして,Djangoのformでバリデーション
  • プッシュ通知pyapns, python-gcm)
  • 認証Python Social Auth)
  • 画像ファイルboto)
  • 公開(Nginx + uWSGI

著者プロフィール

関根裕紀(せきねひろのり)

複数のスタートアップにて,さまざまなWebアプリケーション開発に携わったあと,アライドアーキテクツ(株)に入社。業務では主にWebサービスの開発全般を担当している。5,6年ほど前にPythonを使用して以来,Pythonが好き。PyCon JP 2015 副座長(プログラム),また月に一度の勉強会である「Pythonもくもく会」を主催している。

Twitter:@checkpoint

コメント

コメントの記入