IronPython は、あなたが探していたソリューションだったかもしれません:
http://ironpython.net/
以下のリンクで提供されているチュートリアルとコードを使用すると、前述のような html の「ボタン」などのイベントに反応する html 要素を作成できるはずです。
私は IronPython で遊んでいて、スクリプトへの内部および外部呼び出しに成功しています。以下のチュートリアルには、他の質問が含まれている可能性があります。
helloworld.html -
IronPython アラートの例、ドキュメント内の内部 Python スクリプト。
ブラウザーで Python アプリケーションを開発するには、お気に入りのテキスト エディターが必要です。それを開いて HTML ファイルを作成し、dlr.js を参照すると、スクリプト タグを使用して Python コードを実行できます。
<html>
<head>
<script src="http://gestalt.ironpython.net/dlr-latest.js"
type="text/javascript"></script>
</head>
<body>
<script type="text/python">
window.Alert("Hello from Python")
</script>
</body>
</html>
repl.py
これを REPL ウィンドウで行うには、ブラウザで有効にしましょう。次のスクリプト タグをページに配置するだけです。
from Microsoft.Scripting.Silverlight import Repl
if 'document' not in globals():
import System
document = System.Windows.Browser.HtmlPage.Document
if 'window' not in globals():
import System
window = System.Windows.Browser.HtmlPage.Window
class PythonRepl(object):
__ironpython__ = 'silverlightDlrRepl1'
__minimize__ = 'silverlightDlrWindowLink'
__container__ = 'silverlightDlrWindowContainer'
def __init__(self):
self.repl = Repl.Show('python')
def hide_all_panels(self):
window.Eval("sdlrw.hideAllPanels(document.getElementById(\"%s\"))" % self.__minimize__)
def show_panel(self, id):
window.Eval("sdlrw.showPanel(\"%s\")" % id)
def show_ironpython(self):
self.show_panel(self.__ironpython__)
def remove(self):
document.Body.RemoveChild(document.silverlightDlrWindowContainer)
def show():
prepl = PythonRepl()
repl = prepl.repl
import sys
sys.stdout = repl.OutputBuffer
sys.stderr = repl.OutputBuffer
return prepl
if document.QueryString.ContainsKey('console'):
prepl = show()
if document.QueryString['console'] == 'hide':
prepl.hide_all_panels()
else:
prepl.show_ironpython()
dom.py
IronPython の例: DOM 要素を追加し、その HTML コンテンツを "Ouch!" に変更します。クリック時:
dir(document)
div = document.CreateElement("div")
div.innerHTML = "Hello from Python!"
document.Body.AppendChild(div)
div.id = "message"
div.SetStyleAttribute("font-size", "24px")
def say_ouch(o, e):
o.innerHTML = "Ouch!"
document.message.events.onclick += say_ouch
注: IronPython には SilverLight が必要なため、FireFox または Safari でのみ動作します。
あなたの質問に関連する優れたチュートリアル:
http://jimmy.schementi.com/2010/03/pycon-2010-python-in-browser.html