混合HTML5 Canvas和Python

时间:2012-02-28 16:27:59

标签: python django html5 google-app-engine

我已经单独使用了这两者(Python和HTML5),但是我热衷于使用HTML5的全部功能来使用HTML5绘制内容并处理客户端方面的事情。我想我正在寻找在实施方面下降的途径。如果可能,以下是我想做的一些事情:

  1. 拥有非常互动的数据,需要通过Python处理服务器端,但是由HTML5 Canvas显示和本地操作。
  2. HTML5 Canvas上可与服务器端通信的可点击组件。
  3. 是否有人可以推荐的实施方案?即Google App Engine会不会有任何好处。 Django的?睡衣?

    谢谢 - 如果这看起来有点模糊,请道歉。我在尝试一条路径之前询问是否有单挑以节省时间和精力。

3 个答案:

答案 0 :(得分:11)

在这种情况下,服务器端比客户端更加发达。 (Rich JS库是一个更新的现象,就是全部。)Django是服务器上可接受的选择,尽管我至少会考虑Twisted

我在客户端的建议:

  1. 首选是paper.js,它是一个用于操作画布的库。出色的性能,允许事件绑定,丰富的图形操作,教程非常棒。与类似的软件相比,似乎也有一个非常温和的学习曲线。

  2. 第二个选择是raphael或类似的SVG库。性能不如paper.js好,尽管它很大程度上取决于屏幕上的内容。

  3. 您能详细说明您将在客户端做什么样的事情吗?可见对象的数量,将绑定到哪些对象的事件,所需的图形过滤器类型等等,都会大量通知这一选择。

    您可能会发现自己正在努力在客户端上获得良好的图形性能,因此期望花费大量时间。

    编辑:基于你的评论,我认为你会发现任何一种解决方案都可行,所以我会倾向于paper.js只是因为它更有趣,如果你确实去了某个意外的地方,它将能够去那里你。

    由于您的应用程序听起来与大量图表有关,我建议您查看HighCharts或其他图表库,其中有几个,包括商业图书馆和非图书馆。除了除了在营利性应用程序中使用生产外,HighCharts本身是免费的,否则价格合理。

答案 1 :(得分:4)

我完全按照你在服务器端使用Django和客户端使用HTML5 canvas / javascript提到的内容。我对结果非常满意,但是想指出你在客户端使用Canvas做的事情与你在服务器端使用Python的内容没有任何关系。

答案 2 :(得分:2)

像这样的富客户端窗口小部件的可行方法是使用如下堆栈:

  • [您的javascript用户界面]
  • [a js lib for your graphics]
  • backbone.js用于管理对象客户端
  • 用于在RESTful API中包装django对象的django-tastypie
  • 用于定义后端的django