私のWebアプリケーションでは、ユーザーはオブジェクトを描画できます。描画機能は、d3js(SVG)を使用して(クライアント側で)実装されています。オブジェクトの属性(形状、座標、色)は、サーバー側で構造化データベースに保存されます。Python Webアプリケーション(Heroku)でサーバーサイドでd3jsを実行するにはどうすればよいですか?
今、図面をサーバー側でレンダリングする必要があります。私は(サーバー側で)クライアント側で実装されたレンダリングロジックを再利用したいと思います。つまり、データベースに保存されているオブジェクト属性を考慮して、SVGを取得する(PNG/PDFに変換する)。
私は(少なくとも)次のオプションを参照してください。
- は、同様にHerokuの上NodeJSをインストールし、私のPythonのWebアプリケーションからノードを実行します。私がよく理解すればこれはJSDOMを必要とします - thisを見てください;
- ghost.pyを使用して、実際のレンダリングを行うローカルHTMLファイルを開きます(d3jsを使用)。
- レンダリングされたSVGをクライアント側からバックエンドに送信します。ただし、これは不適切な選択です。
あなたのお勧めは?
その後
Ghost.py
を編集し、それはHerokuの上にインストールすることができますどちらもPyQtはやPySideを、必要とするため、オプションではありません。 thisを参照してください。
PhantomJS
のようです。
いくつかの参照
Migrate from jsdom to phantomJS ? (basic DOM creation)
Server-side rendering of visualisations using NodeJS
**私は** phantomjs **に行ってきました。 –