2009-06-30 20 views
1

Hy、 Python用のイベント駆動/イベントベースのWebフレームワークはありますか?Eventdriven Webframework for Python

NitroGenはerlangの意味です。

ボタンのようなWebサイトにいくつかのコンポーネントを追加して、ボタンの "onclick"ハンドラにpython関数を関連付けるだけで、実行されます。

from pyjamas.ui.RootPanel import RootPanel 
from pyjamas.ui.Button import Button 
from pyjamas import Window 

def greet(fred): 
    Window.alert("Hello, AJAX!") 

if __name__ == '__main__': 
    b = Button("Click me", greet) 
    RootPanel().add(b) 

:それは次のコードのよう を(窒素と同じように)私のために必要なすべてのhtmlとjsのコアを生成し、必要なすべてのコンポーネントをサポート(スパン、P、ボタン、テキストボックスのように、PASSWORDFIELD ...)必要がありますthisを取得します。

私が見つけた唯一の枠組みはPyJamasですが、それがないために(Webmailersのようなものに)ウェブ・アプリケーションのために作られたWeb-ページ(ここで、限られた機能で、Googleがインデックスにコンテンツを必要としているが、JSせずに読めるはずです) 。パジャマや窒素のようなものがありますか?

ありがとうございます!

答えて

3

KSS(キネティック・スタイルシート)、窒素のようなものを提供します。 KSSはNitroGenと異なり、JavaScriptイベントをクライアント側のHTMLページにバインドする方法を宣言するための単純なドメイン固有言語(DSL)を定義していますが、このDSLではイベントがサーバー側コンポーネントはAJAX経由です。 NitroGenとパジャマを使用すると、JavaScriptがHTMLとどのように対話するかを含む情報が、サーバー側言語の一部であるデータ構造から導き出されます。 KSSプロジェクトの説明から

http://kssproject.org/

、「KSSは、クライアント側のJavaScriptライブラリとサーバー側のサポートの両方を持っています。クライアント側のJavaScriptライブラリは、あなたのページに含まれる必要がある。これは、キネティック・スタイルシートを取り出し、 JQueryやExtJSのような他のクリーンなJavascriptライブラリと平和的に共存できるクリーンなJavascriptコードです。

KSSは、Pythonやサーバーサイドのコードとは独立して使用できます。しかし、KSSには、PythonのWebフレームワーク内のサーバサイドの呼び出し可能なコールサイドにKSSのクライアントサイドイベントをバインドする機能があります。 Pythonの一般的なWebフレームワーク(Django、Pylons、Zope、Plone、Grok)の多くでKSSを使用するバインディングがあります。

-1
+0

その、イムが探し私はHTMLページに配置したいコンポーネントを知っていて、必要なhtmlとjsコードを生成してPythonコードに接続します。 – theomega

1

HTMLはイベント駆動型ではないため、Ajaxに頼らずにイベント駆動型Webフレームワークを作成することはできません。

イベントドリブンではなく、あなたが意味すると思うのは、スキーマを定義し、フォームが生成されているシステムだということです。そして、すべてのWebフレームワークにはそれがあります。

しかし、コンポーネントやイベント駆動型開発が好きな人は、Zope ToolkitベースのWebフレームワーク(Grok、Repoze.BFG、Zope3など)や、それらの最新のものを調べてください。

http://grok.zope.org/ http://bfg.repoze.org/ http://wiki.zope.org/zope3/Zope3Wiki http://bobo.digicool.com/

編集:OK、明らかに問題はJavascriptを使用していない、パジャマでのみでした。 その場合、上記のようにKSSが働きます。上記のフレームワークでも使えます! (ツイストの上で使用された場合、それは今かもしれとして、)

+0

HTMLだけでもイベント駆動型ではありませんが、ajaxを使用することができます。だから、私は私の質問に書いたように、私はHTMLとjsを生成するためのツールキットを探しています。しかし、シンプルな(動的ではなく、イベントベースでないコンテンツ)は、seo puroposesのhtmlにあるべきです。あなたが今理解していることを願っています – theomega

+0

ああ、もちろん。パジャマはそれをすることができないと言っていますか?その場合は、ちょっと吸います... –

1

Zope 3は、あなたの目的に合わせかもしれない、とそうDivmod Mantissaは可能性があります - 彼らは確実に強く、イベント駆動型、特に仮数、およびしかしを_any_thing「低両方です(特に後者についての頻繁な苦情は、習得するにはあまりにも豊富で高水準だということです。

1

私は同じものを探していますとながれが答えである可能性があり、ながれで試してみてください:Nagare

http://www.nagare.org/

0

あなたの例:

from nagare import presentation 

def greet(self): 
    window.alert('Hello world!') 

class MyComponent(object): 
    pass 

@presentation.render_for(MyComponent) 
def render(self, h, *args): 
    return h.input(type='submit', onclick=greet) 
低レベルへ