Python で jsonrpclib を使用していくつかの API を実装した後、それらを Django Framework プロジェクト内に移行する必要があります。私は Django と Piston/tastypie の初心者ですが、Python アプリで jsonrpc/xmlrpc ライブラリを使用した経験があります。
これまで、リクエストを処理して ServiceClass のメソッドを呼び出す jsonrpc サーバーのレジスタに接続された ServiceClass を使用して、いくつかのモジュールを開発してきました。
クラスがレジスタにアタッチされると、ServiceClass の新しいインスタンスが作成され、すべての初期データが読み込まれてメモリに保持されるため、jsonrpc を介して呼び出されるすべてのメソッドは、そのインスタンスの内部値にアクセスできます。
今、私は Django で Piston または Tastypie を使って同じことをしようとしています。このリンクhttp://www.robertshady.com/content/creating-very-basic-api-using-python-django-and-piston およびその他のリソースをたどりましたが、読んだすべてのドキュメントは明確で、正しい方法を示していますそれを操作するには:
- url.py を変更して、「/api/」などのリクエストを特定のハンドラーにマップします。
- API アプリケーションに handler.py を追加し、Piston/Tastypie の BaseHandler を拡張します。
したがって、BaseHandler を拡張する Handler のインスタンスを作成するときに、handler.py 内で ServiceClass のインスタンスを作成する (データを初期化し、メソッドを提供する) ことが、Django と API を操作する正しい方法であるかどうか疑問に思っています。この Handler クラスは、サーバーの起動時に 1 回インスタンス化されますか? ServiceClass が Model に依存してデータをロードするとどうなりますか?
新しいリクエストが /api/ アプリケーションに到着するたびに、フレームワークがクラスをインスタンス化するのを避けたいです。
おすすめを教えていただけると嬉しいです。よろしくお願いします。