在 Python 中使用 jsonrpclib 实现一些 API 后,我需要将它们迁移到 Django 框架项目中。我是 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。
所以我想知道它是否是使用 Django 和 API 的正确方法,当我创建扩展 BaseHandler 的 Handler 实例时,在 handler.py 中创建我的 ServiceClass 实例(初始化数据,提供方法)。这个 Handler 类是否在服务器启动时实例化一次?如果我的 ServiceClass 依赖某个模型从中加载数据怎么办?
我想避免框架在每次新请求到达 /api/ 应用程序时实例化我的类。
我很高兴听到任何建议,谢谢,