如何在GWT中使用Django?

Mon*_*ofu 6 django gwt json

所以我知道我可以使用JSON在这两者之间进行通信,但我也知道我必须在JS中手动重新创建所有Django对象.

你知道任何可以帮助我做到这一点的工具或库吗?或者甚至可能是实现同一目标的更好方法?

我只发现了这两个:http ://palantar.blogspot.com/2006/06/agad-tutorial-ish-sort-of-post.html Django + GWT或Jquery

但是我仍然需要手动镜像我的对象,这会违反DRY.

skr*_*rat 6

在我的Django/GWT项目中,我使用django-piston以JSON格式通过REST API公开Django模型.请看活塞的网站,了解更多关于如何实现这一点的信息http://bitbucket.org/jespern/django-piston/wiki/Home.

然后,在GWT端,您只需要为Django模型创建叠加类型(DevGuideCodingBasicsOverlay).

我使用gwt-dispatch(http://code.google.com/p/gwt-dispatch/)添加了一些REST优点来从Django后端获取我的模型,但你可以使用任何你想要的(HttpRequestBuilder),然后使用GWT JSONParser通过获取JavaScriptObject和投射,您将在GWT中获得所需的模型.这可能看起来有点过于复杂,但事实并非相反,使用起来非常舒服.


pvo*_*ten 2

如果您想在 GWT 和 Django 中创建新模型,生成代码的最简单方法是从非常简单的模型定义开始,例如

classname
attribute1 type1
attribute2 type2
Run Code Online (Sandbox Code Playgroud)

使用一点 Python 来解析它非常容易,一旦解析了上面类似的行,为 Django 和 GWT 生成代码也很容易。Django 和 GWT 的定制只需要多做一点工作。考虑外键则更加复杂。不要忘记生成一个微小的方法来序列化对象,例如以 JSON 格式。

我的第一反应是在 Python 中使用内省,但后来在 django 模型中内省外键字段时遇到了麻烦。也许我应该看一下 django-docs 项目的代码(可在谷歌代码中找到)。

最后,为了加快 GWT+Django 开发速度,您可以在托管模式下使用 http 代理 servlet,这样您就不需要每次想要使用 Django 后端运行 GWT 前端时都编译 GWT 内容。http://www.servletsuite.com/servlets/httpproxy.htm上的 servlet可能可以解决这个问题。