2009-06-04 4 views
4

私はLAMPish/WAMPishエクスペリエンスを探しています。エントリへの障壁が低いPython Webフレームワーク

非常に透明です。スクリプトを書き、F5を押して結果を確認します。抽象的であれば、ほとんどありません。 SQLAlchemyと(おそらく)単純なテンプレートエンジンが使用されます。

PHPのような環境に簡単にアクセスする必要があります。 COOKIE、SESSION、POST、GETオブジェクトのようなもの。

ミドルウェアレイヤーを作成して、一部のWebサービスを起動して実行する必要はありません。そして私はCGIの細部に対処したくありません。

これは非常に複雑なプロジェクトではなく、初心者プログラマーや初心者のPythonプログラマー向けです。

MVCフレームワークは疑問の余地がありません。 ASP.NET MVCはうまくIMOされています。私が好きなことの1つは、必要に応じて、POSTされたデータがデータモデルオブジェクトに自動的にキャストされるということです。

ここでお手伝いできますか?

ありがとうございます!

PS:以前の投稿では、これらの基準に一致するものは見つかりませんでした。

+0

「私はちょうどミドルウェア層を書きたくない:ここでは、「Hello World」の例です。ウェブを立ち上げて稼働させるためには、CGIの詳細については扱いたくありません」私はそれをどのように解釈するのか分かりません:CGIの仕様を避けるためのミドルウェア(Webフレームワーク)を使用します。 「ミドルウェア」とはどういう意味ですか?あなたは例を挙げることができますか? –

+1

私は自分のアプリケーションとWebサーバーの間のインターフェースを扱いたくありません。それはうまくいくはずです。それがそうでないところで "werkzeug"を見て、私はちょうど私がそれを言及すると思った。多分私の言葉「ミドルウェア」の選択は間違っていました。 – user51710

+0

「ちょうどうまくいくはず」はあまり意味がありません。インターフェイスがあります。誰かが、そのインターフェースを介してデータを交換するコードを書く必要があります。私は本当に質問を得ていません - まだ - あなたは、あなたの「正義の仕事」の基準を満たすいくつかの詳細やサンプルコードを提供できますか? –

答えて

5

web.pyは非常に非常に軽いです簡単です。

特徴:展開(DEV)

  • 簡単... ​​
  • 、サーバーを起動し
  • 、アプリのディレクトリにweb.pyフォルダをコピー正規表現ベースのURLマッピング
  • 非常に単純なクラスのマッピング
  • 内蔵サーバー(ほとんどのフレームワークにはもちろんこれがあります)
  • 非常に細い(少なくともコード行で測定)レイヤーをPythonアプリケーションコードより上に置きます。ここで

そのハロー世界です:

import web 

urls = (
    '/(.*)', 'hello' 
) 
app = web.application(urls, globals()) 

class hello:   
    def GET(self, name): 
     if not name: 
      name = 'world' 
     return 'Hello, ' + name + '!' 

if __name__ == "__main__": 
    app.run() 

私は概念的WERKZEUGを好きなだけ、こんにちは、世界でWSGI配管を書きます!深く不愉快であり、実際にアプリを実際にデモする方法になります。

web.pyは完璧ではない、とするので、大きな仕事のために、それは、おそらく適切なツールではありません、言った:ルートスタイルシステムは(私見)純粋な正規表現のもの

  • よりも優れている

    • は、 web.pyと他のミドルウェアとの統合は、冒険的かもしれません。
  • +0

    これは、web.pyには*たくさんの問題があります。アプリケーションが重くなってもかまいませんので、注意してください! –

    1

    ルックで:

    • WSGI、HTTPサーバー用のPythonの標準APIは、Pythonのコードを呼び出します。
    • Django、人気の高い、機能豊富な、十分に文書化PythonのWebフレームワーク
    • web.py、最小限のPythonのWebフレームワーク
    +3

    私はウェブに投票します。それが別のコメントであったならば、py。私はDjangoに投票することは望ましくありません.Djangoは、導入するのが簡単ではなく、侵入の障壁が低くなります。 –

    1

    あなたはDjango Webフレームワークに見たことがありますか? MVCフレームワークはPythonで書かれており、比較的簡単にセットアップして使い始めることができます。 SQLiteと独自の開発サーバーを使うことができるので、Pythonだけで実行することも、必要に応じてMySQLとApacheを使用するように設定することもできます。

    Pylonsは、モデル用にSQLAlchemyをサポートする別のフレームワークです。私はそれを使用したことはありませんが、それは有望なようです。

    +1

    私はSQLAlchemyに多少の作業量を投入しましたので、それを使用したいと思います。 Djangoの問題は、それがafaikだけを実験的にサポートしていることです。 – user51710

    +1

    編集:SQLAlchemyが本当に好きなら、Pylonsを試すことができます。 –

    +0

    SQL Alchemyへの投資は、あまり問題なくDjango ORMに適用する必要があります。書き換えがありますが、それは構文的であり、マイナーです。また、SAからDjangoに移動するときにいくつかのものを落とすことができます。 –

    6

    CherryPyが必要な場合があります。これは、透過的にURLをPython関数にマップし、すべてのCookieとセッションの内容(もちろんPOST/GETパラメータ)を処理します。

    これはDjangoやRailsのようなフルスタックソリューションではありません。一方、それはあなたが気に入らないテンプレートエンジンやORMであなたを悩まさないことを意味します。あなたは好きなものを自由に使うことができます。

    これにはWSGI準拠のWebサーバーが含まれているため、Apacheは必要ありません。

    +0

    この組み合わせは私の仕事です。 SQLAlchemyとの組み合わせでは、マルチスレッド化の権利を得るためにちょっと注意する必要があります。このコードをhttp://code.google.com/p/webpyte/source/browse/trunk/webpyte/sqlalchemy%5Ftool.pyで持ち上げて – stephan

    +0

    +1にすることができます。 -effort web app framework、それはRESTfulなサービスを書くための素晴らしい紹介です。 –

    5

    あなたが最も詳しく説明しているのはPylonsのようなものです。しかし、Python用/でWebフレームワークの数が膨大である - それらの一つ一つを特徴付ける非常に簡単に一覧表示しようとする試みのためにthis pageを見て - !)エントリへの低障壁のために

    0

    チェックアウトweb2py USBスティックからでもコンフィギュレーションなしで動作します。テンプレート言語は純粋なPythonで、ブラウザエディタでアプリケーション全体を開発することができます(vimの方が高速ですが)。

    1

    Bottleを忘れないでください。これは、依存関係がなく、使いやすい単一ファイルのマイクロウェブフレームワークです。

    from bottle import route, run 
    @route('/') 
    def index(): 
        return 'Hello World!' 
    run(host='localhost', port=8080) 
    

    そしてここで(クッキーとVARSが類似しているGET)POST変数にアクセスするための一例

    from bottle import route, request 
    @route('/submit', method='POST') 
    def submit(): 
        name = request.POST.get('name', 'World') 
        return 'Hello %s!' % name