Web開発で,Pythonのコードをクライアントサイド(Webブラウザ)でダイナミックに実行したいというニーズはけっこうあると思う。
pystachio(ピスタチオ)はユニークなアプローチでPythonのコードをWebブラウザ上で実行する仕組みだ。Pythonのコードを,JavaScriptを使ってダイナミックにPythonのコードに変換して実行する,というもの。開発者はHTMLなどにPythonのコードを埋め込むだけでいい。あとはpystachioがPythonのコードをJavaScriptに変換して,実行してくれる。
まずは
その後,HTMLの中に
pystachio(ピスタチオ)はユニークなアプローチでPythonのコードをWebブラウザ上で実行する仕組みだ。Pythonのコードを,JavaScriptを使ってダイナミックにPythonのコードに変換して実行する,というもの。開発者はHTMLなどにPythonのコードを埋め込むだけでいい。あとはpystachioがPythonのコードをJavaScriptに変換して,実行してくれる。
まずは
<script type="text/javascript" src="pystachio.js"></script>のようにしてpystachioをロードする。
その後,HTMLの中に
<script type="text/python">
<!--
temp = "hello, world!"
def something(temp):
return temp
print something(temp)
#-->
</script>
というようにPythonのコードを埋め込む。
HTMLの最後には
<script type="text/javascript">
<!--
//init params: debug_mode
pystachio.init(true);
//-->
</script>
としてpystachioの関数を呼び出す。すると,text/pythonのブロックを読み込んで,JavaScriptのコードに変換してくれる。
クライアントサイドで動くコードをPythonで書くための方法として,以前,このブログでも紹介したPythonのコードをサーバ上でダイナミックにJavaScriptに変換してしまうというアプローチがある。pystachioはこの手法に比べて圧倒的に「ノリがよく」活用できるはずだ。HTMLや外部ファイルにPythonのコードをべた書きしておくだけでよいからだ。
現在はPythonのトークナイザをJavaScriptで実装しただけの段階で,まだコードを実行できないようなのだが,実際にコードが動き出すまでそれほど待たなくてもよいような気がする。
このpystachioように,WebブラウザでPythonのコードを動かすための仕組みについては注目してゆきたいと思っている:-D。