pyjadeでサーバーでもクライアントでも同じテンプレートを使う方法

2016年11月16日 11時10分 スルメ pyjade, Python

WebSocketとかでサーバーから振ってくるのはJSONで、JavaScriptでHTMLにしたい、でもJavaScriptが実行できない環境向けにPythonのサーバーサイドでも同じHTMLを生成したい・・・というときに便利。

  1.  クライアント側でnunjucks(jinja2とそこそこ互換があるやつ)を読み込む
  2. サーバー側でこういうコードを書いて、なんとかしてクライアントで見れるようにする
  3. クライアント側で2.で作ったやつを読み込む
  4. クライアントでtemplate_templatename()を実行する
  5. HTMLが帰ってくる
  6. やったぜ。

注意点として、pyjade側で実装されているものがある場合はなんとかしてjinja2の記法にしないといけないというのがある。

例↓

ちょっと汚くなるけどしょうがない。それが嫌なら最初からjinja2で書くとかすると良いかもしれない。