【发布时间】:2011-10-29 04:20:45
【问题描述】:
我正在尝试创建一个 django 网站来访问 MySQL 数据库中的数据。目的是也在 Dojo (javascript) 中创建一个 UI。此外,我希望 django 后端也提供 web 服务(用于 python 函数的 RPC)以允许远程访问 MySQL 数据库。例如,如果有人想使用 Perl 脚本来访问数据库(以及可能的其他附加功能,例如基于数据库中数据的计算),他们可以使用他们的母语 (Perl) 来实现。
现在理想情况下,Web 服务 API 对于 javascript 以及想要访问这些服务的另一个远程服务是相同的。我发现 JSON-RPC 是一个很好的方法,因为除了许多额外的好处之外,通常在 javascript 中内置了对此的支持。还有很多人似乎更喜欢 SOAP 而不是 JSON。
我已经看到了几种方法:
1) 为您要访问的每个函数创建一个唯一的 URI: https://code.djangoproject.com/wiki/JSONRPCServerMiddleware
2) 创建一个访问点,并传递JSON包中的方法名。在此特定示例中,自动生成 SMD。 https://code.djangoproject.com/wiki/Jsonrpc
(1) 的问题是,如果要访问的函数很多,那么将使用很多 URI。这似乎不是一个优雅的解决方案。 (2) 的问题是我需要将函数与所有函数的列表进行比较。同样,这也不是一个优雅的解决方案。
有没有办法我们可以利用 (1) 和 (2) 的优势来创建一个接口: - 只有一个 URI 用作访问点 - 直接调用函数(无需与函数列表进行比较)
对此的任何帮助将不胜感激。谢谢!
【问题讨论】:
-
我很好奇你认为这应该如何工作,当你不想使用 URL 映射到你的函数,并且你不想在处理请求时进行映射.您如何确定服务器会找出您要调用的函数?
标签: python django json rpc smd