初心者開発者向けのDjangoとweb2py [クローズ]


83

これら2つのフレームワークのどちらが、11か月の経験を持つ開発者に適しています。私はサーバーサイドコーディングのためにPythonを学ぶことに決め、これらのどれが私のスキルレベルの誰かに適しているか知りたいと思いました。私はweb2pyで遊んで数日過ごしたばかりで、本当に気に入っています。Djangoが私が見逃しているものをもっと提供しているかどうか疑問に思っていますか?

PS。更新:素晴らしい入力をありがとうございました。3冊のdjangoの本を購入し、djangoとweb2pyの両方についていくつかの小さなプロジェクト/チュートリアルを行った後、web2pyに落ち着きました。これは素晴らしいフレームワークであり、Web開発を初心者にとって本当に楽しいものにします。このフレームワークは将来主流になるので、すべての初心者にこのフレームワークを学ぶことをお勧めします。Djangoも素晴らしいフレームワークですが、私の限られた経験の意見ではweb2pyの方が優れています。



1
「Web2pyを使用すると、アプリケーションの開発に集中できますが、Djangoはそうではありません。すべてのことを実行してほしいのです。」ええ、非常に公平な比較のように聞こえます
user240515 2012

あなたの声明を裏付けるために選択の引用を選ばないでください。記事はそれほど悪くはありません。
アシュリー

web2pyの完全な初心者を対象としたチュートリアルを見つけたと思います:Killer Web Development
Colin Keenan 2012年

1
'Djangoを使用したことがある場合は、すべてが継承に基づいています。彼らが[CBV]を導入したとき、それは非常に複雑になったので、誰かが継承ツリーを探索するためだけにこのサイトを作成しなければなりませんでした:ccbv.co.uk ' -news.ycombinator.com/item?id=7994281 vs'別の欠点はそれです。モデルとコントローラーはクラスベースではないため、効率的なコードの再利用はより困難になります。特に、親コントローラーから継承できないため、すべてのコントローラーファイルで共通のコントローラー機能を繰り返し参照する必要があります。- en.wikipedia.org/wiki/Web2py
mistermarko

回答:


107

(免責事項:私はweb2pyのプロジェクトリーダーです)

Djangoはweb2pyよりも約5年長いため、より多くのユーザーとより多くのアプリケーションを誇示しています。Djangoには、web2pyの「admin」とは異なり、web2pyの「appadmin」に似た「admin」と呼ばれるものがあります。Djangoの「admin」はweb2pyの「appadmin」よりも優れており、カスタマイズ可能です。Djangoにはweb2pyの「admin」に相当するものはありません。(名前の混乱でごめんなさい)。

web2pyはよりコンパクトで、すぐに使用できる機能が増えています(よりサポートされているデータベース、WebベースのIDE、チケットシステム、パッチなしでGAEで実行、複数のログイン方法、ロールベースのアクセス制御、Webベースの変換インターフェイス、複数のデータベース接続のサポート、分散トランザクションなど)。

私にとって、web2pyの最も重要な機能は自動移行です。Djangoはすぐにそれらを提供しません。

web2pyの場合、セキュリティとともに、長期的な下位互換性が主要な目標です。Djangoはセキュリティの点でweb2pyに匹敵します(ただし、web2pyにはCSRF防止機能があり、テンプレートではデフォルトでエスケープされていました)が、1.0がリリースされたときにDjangoは下位互換性を失いました。web2pyは2007年10月以来決してしませんでした。

私にとって、web2pyの構文はより自然です。

 db(db.tablename.fieldname <= value).select() # web2py
 Tablename.objects.filter(fieldname__lt=value) # Django

Djangoに存在しないweb2pyの機能を認識していません。ある場合はweb2pyに追加したいので、何度もその質問をしましたが、まだ満足のいく回答が得られていません。

もちろん、私たち二人がしていることはありますが、違います。Djangoは、「暗黙的よりも明示的の方が優れている」に従います。web2pyは、「すべてがデフォルトの動作をする必要があります」ではなく、それに続きます。これにより、web2pyのコードと構成がよりコンパクトになると思います。

とにかく、あなたが何を選んだとしても、それらは両方とも優れた堅実なWebフレームワークであり、相違点よりも類似点が少ないです。Djangoの開発者は非常に賢い人です。

web2pyコミュニティはとてもフレンドリーです。実験として、web2pygoogleグループとDjangoグループで質問してみてください。


1
おかげで、これはいくつかの良いものです。私はそれをテストするためにDjangoチュートリアルを行っています、web2py構文は間違いなくより自然です。うまくいけば、後で私はより明確な画像を得るでしょうが、これまでのところ、両方のフレームワークは本当によく見えます。
RubyGladiator 2010

11
+1(web2pyを使用すると、ビューにPythonを直接書き込むことができます)
ダグ2011

1
あなたが提供したweb2pyの例( " db(db.tablename.fieldname <= value).select()")について質問があります。これは、Pythonのようには見えないためです(括弧内の部分は、パラメーターの1つに値を割り当てておらず、True/を渡すだけFalseです)。それはweb2pyの標準ですか、それともあなたが提供したコードは実際のweb2pyコードの単純化されたバージョンですか?おそらく、括弧内の部分は引用符で囲む必要がありますか?説明してください。
タデック2012年

db(...)。select()では、...はTrue / False値ではありません。db.tablename.fieldname <= valueは、各レコードでtrueまたはfalseとして評価される式です。これは実際のweb2pyコードです。引用符はありません。
マッシモ

4
web2py DALは、単にクエリを作成する方法を提供します。クエリはSQLに変換され、応答を返すデータベースに送信されます。web2pyは、データベースにあるレコードの数の影響を受けず、気にしません。言い換えると、「db(db.tablename.fieldname <= value).select()」と書くと、web2pyはすべてのレコードを取得して、各レコードの状態を評価するわけではありません。データベースに「SELECT * FROM TABLENAME WHERE FIELDNAME = '1'」を照会する場合。
Massimo

23

Djangoとweb2pyはどちらも、同様の機能を備えた優れた「フルスタック」Webフレームワークです。どちらのフレームワークでも、初心者のように「見逃すことはありません」。

あなたがあなたの学習で何をしたいのかについてもっと知らずにあなたの質問に答えるのは難しいです。言語ではなくフレームワークを学習する危険性があると言う人もいるので、最初にPython言語と軽量フレームワーク(Flaskwekzeugなど)をより深く理解するのが最善かもしれません。

そうは言っても、web2pyは学習ツールとして特別に設計されているため、Djangoよりも初期学習曲線が低くなっています。だから私はあなたが良い選択をしたと思います。学習が無駄になることはなく、将来何か他のものが必要だと判断した場合でも、web2pyを使用して学習した優れたテクニックが無駄になることはありません。

Djangoの学習リソースは増えていますが、Djangoの方が長く、ユーザーも多いため、優れたユーザーグループの質問へのほぼ瞬時の応答により、web2pyの学習も高速です。

仕事を探しているなら、Djangoの仕事がもっとあるので、それが要因かもしれません。そうは言っても、web2pyコミュニティは最近、あなたのスキルと可用性を将来的に促進できるexperts4solutionsを設定しました。

楽しんで!


Knitatomsのおかげで、私は実際にルビーを学び、乗換えてPythonを学んでいます。これは、これまでのところ非常に似ているようです。私がフレームワークで何をしたいのかというと、これは近い将来、純粋にWebスタートアップを構築することです。また、jquerymobileを使って遊んでいるので、何かを作成したいと思います。
RubyGladiator 2010

2
興味深い話ですが、私も同じような立場にあります。自分で仕事をしているので、自分のフレームワークを選択しているので、web2pyを使用して、これまでのところ満足しています。
keybits 2010

10

私はWeb2pyとDJangoの両方に精通していますが、単純なデータベースのフロントエンドを操作、学習、作成するためのpythonicであるWebフレームワークが必要でした。web2pyを見ましたが、完全な初心者を対象とした適切なチュートリアルが見つかりませんでした。web2pyをインストールしたとき、これは非常に簡単で、次に何をすべきかわからなかったので、ガイドとなるチュートリアルがなかったようです。簡単なWebアプリを作成する方法(Hello Worldだけでなく)。一方、DJangoは最初のDJangoアプリの作成パート1を行いました。これは本当に良かったので、初心者に簡単なWebアプリを作成してフレームワークをセットアップして使用する方法を紹介しました。Web2Pyがこれを提供するまで、私の投票はDJangoに行きます。


youtube.com/を見て、Pythonやデータベースをまったく知らないことからWeb2pyを学びました。 その後まもなく、Web2pyを使用して大規模な企業とユーザーベース向けに2つの本番Webサービスを構築しました。Googleグループコミュニティに感謝します。
プレアクティブ2017

6

多くの言葉で:(私が理解したように)

Web2pyは間違いなく簡単で、コードがよりシンプルでクリーンになります。しかし、Djangoを使用すると、何が起こっているのかをよりよく理解でき、設計/プロセスを変更するためのより強力な機能も得られます。

Web2pyは「複雑よりも単純な方が良い」に重点を置いていますが、Djangoは「暗黙よりも明示的な方が優れている」に重点を置いています。The Zen of Pythonの2つの部分であるため、どちらのフレームワークがよりPythonicであるかを判断するのは非常に困難です。


9
実際、私は時々Web2Pyがかなり反対で複雑であることに気付くことがあります。これは、「複雑なものよりも複雑なものの方が優れている」ことに反しています。下位互換性、重複した名前、さまざまなファイルの暗黙的な実行、どこにでもぶら下がっているグローバル変数-これらすべての問題は、Pythonの哲学に反するPythonフレームワークをもたらしました。
タデック2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.