Смешивание HTML5 Canvas и Python - PullRequest
12 голосов
/ 28 февраля 2012

Я использовал оба из них (Python и HTML5) по отдельности, однако я стремлюсь использовать всю мощь Python в Интернете, используя HTML5, чтобы рисовать вещи и обрабатывать их на стороне клиента.Я думаю, что я ищу пути, чтобы пойти вниз с точки зрения реализации.Вот несколько вещей, которые я хотел бы сделать, если это возможно:

  1. Имеет очень интерактивные данные, которые должны обрабатываться на стороне сервера Python, но отображаться и локально обрабатываться HTML5 Canvas.
  2. интерактивные компоненты на холсте HTML5, которые будут взаимодействовать со стороной сервера.

Есть ли реализация, которую люди могут порекомендовать?Т.е. будет ли Google App Engine хорошим?Django?Пижама?

Спасибо - извинения, если это кажется немного расплывчатым.Я спрашиваю, прежде чем пробовать один путь, чтобы увидеть, есть ли хедс-ап, чтобы сэкономить время и усилия.

Ответы [ 3 ]

11 голосов
/ 28 февраля 2012

Серверная сторона в этом случае гораздо более развита, чем клиентская.(Богатые JS-библиотеки - новое явление, вот и все.) Django - приемлемый выбор на сервере, хотя я бы, по крайней мере, рассмотрел Twisted .

Моя рекомендация на стороне клиента:

  1. Первый выбор - paper.js - библиотека для управления холстом.Отличная производительность, позволяет связывать события, богатые графические операции, учебники фантастические.Кажется, что у него очень плавная кривая обучения, по сравнению с аналогичным программным обеспечением.

  2. Вторым вариантом будет Raphael или аналогичная библиотека SVG.Производительность не такая хорошая, как у paper.js, хотя многое зависит от того, что будет на экране.

Можете ли вы рассказать, какие действия вы будете выполнять на клиенте?Количество видимых объектов, какие события будут привязаны к каким объектам, типы графических фильтров, которые вам нужны, и т. Д., В значительной степени определяют этот выбор.

Вы, вероятно, столкнетесь с трудностями, чтобы получить хорошую графическую производительность наклиент, так что ожидайте потратить на это много времени.

Редактировать: Исходя из ваших комментариев, я думаю, вы найдете любое решение работоспособным, поэтому я бы склонялся к paper.js только потому, что это немного веселееи если вы поедете куда-нибудь неожиданно, он сможет пойти туда с вами.

Поскольку ваше приложение звучит так, как будто оно связано с большим количеством графиков, я бы посоветовал вам проверить HighCharts или другую библиотеку диаграмм, из которых есть несколько, как коммерческих, так и не.Сам HighCharts является бесплатным для всего , за исключением производственного использования в коммерческих приложениях, и по разумным ценам в противном случае.

4 голосов
/ 28 февраля 2012

Я делаю именно то, что вы упомянули, используя Django на стороне сервера и HTML5 canvas / javascript на стороне клиента. Я очень доволен результатами, но хотел бы отметить, что то, что вы делаете с Canvas на стороне клиента, не имеет ничего общего с тем, что вы используете на стороне сервера для Python.

2 голосов
/ 28 февраля 2012

Жизнеспособный подход для такого расширенного клиентского виджета заключается в использовании стека типа:

  • [ваш пользовательский интерфейс javascript]
  • [js lib для вашей графики]
  • backbone.js для управления объектами на стороне клиента
  • django-tastypie для упаковки объектов django в RESTful API
  • django для определения вашего бэкэнда
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...