web-dev-qa-db-ja.com

優れた軽量Python MVCフレームワークとは何ですか?

たくさんのPythonフレームワークがあることを知っています。皆さんが私を正しい方向に向けることができますか?私の主な関心事はシンプルさです。私が望んでいる(または望んでいない)他のいくつかのこと:

  • oRMを気にせず、単にMySQLで動作させたい
  • 設定可能なルートがあります
  • レイアウトをサポートしています
71
jon

web2py は265Kバイトのソースコードで、1.2MBすべてを含みます(4.6MBのDjangoと比較してください)。ただし、web2pyは必要なすべてを行います(セッション、Cookie、リクエスト、レスポンス、キャッシュ、国際化、エラー/チケット、GAE、SQLite、MSSQL、MySQL、Postgres、Oracle、FireBirdなどのデータベース抽象化)。インストールは不要です。 -解凍してクリックするだけで、ブラウザで開発を行うことができます。

Web2pyにはルートとリバースルートの両方があります。

Web2pyには階層テンプレートシステムがあります。つまり、ビューはレイアウトを拡張でき、別のレイアウトを拡張できます。ビューには他のビューを含めることもできます。

44
massimo

あなたが明示的にORMを必要としないので、私があなただったら、「フルスタック」フレームワークから遠ざかります。 PythonのWSGI標準には、必要な機能だけでなく、作業スタイルを選択できる使いやすいオプションが多数用意されています。

次に例を示します。URLディスパッチの場合、 Routes を使用できます。これは、RailsのURLディスパッチスタイルを移植します。または、 SelectorWebOb を組み合わせて、そのスタイルがより適している場合もあります。

「レイアウト」の場合、コードを実行できないテンプレートが必要な場合は、強力な Jinja2 を使用できます。または、 Mako 少しのコードをテンプレートに混在させたい場合。 Deliverance を使用して、複数のアプリや複数の言語で構成されるページのレイアウトを制御することもできます!

フルスタックのWebフレームワークは、多くの選択肢があり、建物のアプリだけに注意を向けられるという点で素晴らしいです。しかし、私が上に挙げた選択肢は、あなたがあなた自身のものを作り始めるのに良いコレクションです。その道を進むと、必要に応じてキャッシュとセッションに Beaker を、またはデバッグに役立つ WebError を簡単にプラグインできます。

個人的には、私はORMの大ファンです(特に SQLAlchemy )が、ORMを無料で全体的に軽量にしようと考えているなら、Pythonで利用できるすばらしいWSGIコンポーネントを組み合わせることに勝るものはありません。

31
Kevin Dangoor

web.py を試してください。それは非常にシンプルで、あなたが探しているミニマリズムを提供するかもしれません。

11
Dimitry Z

パイロン

Djangoよりもはるかに優れており、くだらないORMが付属していません。

9
habnabit

人々はすでにWebアプリケーションフレームワークに関する多くの答えを出しましたが、MVC(またはその他のパラダイム)はWebのみに結び付けられていません。わかりやすくするためです。

プレーンMVCの場合、Pylonsはより厳密な方法でパラダイムに準拠しています。 DjangoはMVCを解釈し、それをmodel-template-viewと呼びますが、役割の分離の考え方は同じです。実際の選択は個人的な好みの問題ですが、これらの2つはどれも考慮しませんがlightweigth(パイロンはlighter、しかし実際はそうではなく、最近Django=いくつかの追加の重みを集めました-個人用ブログのような小さなアプリケーションでも20MBの常駐メモリに収まらない可能性が高いです)。

もちろん、独自のフレームワークを書くことを妨げるものは何もありません。 WebOb で。必要に応じてlightとして作成できます(そして、多くのことを試してみてください)。

8
zgoda

チェックアウト https://github.com/salimane/bottle-mvc または https://github.com/salimane/flask-mvc それらは、コントローラー、別のフォルダー内のモデルを使い始めるための定型文です。これらはボトルとflask microフレームワークに基づいており、無駄な機能はありません。必要なモジュールをプラグインする柔軟性を提供します。

独自の framework を作成せずにシンプルなものが必要な場合、まだすべてを包括的(Django)にしないで、 CherryPy を試してみてください。ほとんどすべての dispatcher (ページハンドラー/ URLルーティングシステム)を使用できます。また、独自のテンプレートエンジンを選択する必要があります。 Genshi は私のお気に入りです。

6
alif

デスクトップアプリケーションに関しては、 Dabo が適しています。 MySql、Postgresql、Firebird、およびSqliteをサポートするwxPython上のクロスプラットフォームフレームワークです。

6
uwe

Web2pyが必要です。確認してください:

  • oRMを気にせず、単にMySQLで動作させたい

Web2pyにはORMはありませんが、SQLの構文ラッパーがあり、SQLを簡単に実行できます。

  • 設定可能なルートがあります
  • レイアウトをサポートしています

... web2pyにはこれらの両方があります。

また、web2pyは、ほとんどすべての点でDjango/Rails/whateverよりも軽量です。学ぶのはとても簡単です。 MVCフレームワークの学習で最も難しいのは、スクリプト、ORM、および(Djangoを使用した)テンプレート言語です。しかし、web2pyはスクリプトを削除し、ORMを単純化し、テンプレート言語はpython巧妙な方法で)です。

5
toomim

ジャンゴ!

Google App Engineはそれを使用します。

私は自分のペットプロジェクトにも使用しています。

4
Graviton

はい、私は言うでしょうDjangoは間違いなく行く方法です。そのモジュラー設計により、コンポーネント(ORM、テンプレートエンジン、URLディスパッチなど)を組み合わせて一致させることができます。フレームワークが提供するコンポーネントを使用して、代わりにサードパーティの同等のものと置き換えることができます。

4
Gabriel Ross

web2py! Djangoはコントローラーをビューと呼びます。

3
why

シンプルにする場合は、web2pyまたはパイロンを使用します。 Django is good ...しかし、学習曲線は急です

3
BasicGuy

ジャンゴ。追加機能を使用するためにhaveを使用しないでください。また、必要に応じてサードパーティのライブラリを組み合わせて使用​​できるように設計されています。

2
John Millikin

パイロン ;軽量で高速です。

2
tholo

私もDjangoボートに乗っています。ここにいくつかの理由があります。

2
Ross

私は本当にPythonですが、特にDjangoとweb2pyを静かにしてみました。web2pyのシンプルさが大好きで、このサイトは、DAL、コード生成、HTML hlpersといった機能の必要以上のセットを備えており、私にとって最も重要な機能は、サイト内のドキュメントが完全に揃っていることです。

2
user10917

Django が推奨です。

ここへの紹介 (Jacob Kaplan-MossによるGoogle Tech Talk)を見つけることができます:

また、デポール大学で スネークとルビーで行われたエイドリアンホロバティの講演 もご覧ください。

0
Nolan Evans