一般的に使用される 5 つの Python Web フレームワークの詳細な説明
Python には非常に多くのフレームワークがあり、それらを 1 つずついじることができる人は多くありません。正直に言うと、私はそのうちの 3 つしかプロジェクト開発に使用したことがなく、他のユーザーとの接触も少ししかないので、それについて話すことしかできません。知識のある友人は大歓迎です
Web フレームワークと言えば、Ruby の世界は Rails によって支配されていますが、Python は数えきれないほどのマイクロフレームワークやフレームワークが存在する百花繚乱の世界です。参照:
wiki.python.org/moin /WebFrameworks
もう 1 つの主要なスクリプト言語である PHP にも多くのフレームワークがありますが、Python Web フレームワーク (Python Web. Python コミュニティには常に多くのフレームワークが存在し、どの Python フレームワークが優れているのか、劣っているのかについての議論は 3 ~ 5 年に及ぶこともあります。
Python には非常に多くのフレームワークがあり、それらを 1 つずついじることができる人は多くありません。正直に言うと、私はそのうちの 3 つしかプロジェクト開発に使用したことがなく、他のユーザーとの接触も少ししかないので、簡単に話すことしかできません。知識のある方の追加を歓迎します。
Python フレームワークは栄えていますが、依然として最大のものがあります。それが Django です。 Django が Python フレームワークの中で最高であるということについては、これに同意する人もいれば、断固として同意しない人もいます。しかし、Django が最も完全なドキュメントを持ち、最も高い市場シェアを持ち、最も多くの求人があるのであれば、誰もが異論はないと思います。 Django が賞賛されている主な点は次のとおりです:
完璧なドキュメント Django の成功の大部分は、Django のほぼ完璧な公式ドキュメント (Django 本を含む) によるものだと思います。
ソリューションの完全なセット。Rails と同様に、Django はソリューションの完全なセット (フルスタック フレームワーク + バッテリーを含む) を提供します。基本的に必要なものはすべて利用可能です (例: キャッシュ、セッション、フィード、orm、 geo、auth ) であり、Django は基本的にすべての Web サイト開発ツールを用意しているため、開発効率は言うまでもなく、問題はコード内に存在しません。 Django のソースコード内。
強力な URLルーティング構成を使用すると、Django では非常にエレガントな URL を設計でき、基本的に見苦しい GET パラメーターに別れを告げることができます。
セルフサービス管理バックエンド、管理インターフェイスは、Django で最も目を引くコントリビュートの 1 つであり、コードを 1 行も記述することなく、完全なバックエンド管理インターフェイスを実現できます。
システムは密結合しているため、Django に組み込まれている特定の機能があまり良くないと感じた場合、それを後述の ORM や Template などの好みのサードパーティ ライブラリに置き換えるのは困難です。 Django で SQLAlchemy や Mako を使用することはほぼ不可能であり、いくつかのパッチを当てたとしても、非常に非常にぎこちなく感じるでしょう。
テンプレート関数は比較的弱いため、Python コードに挿入することはできません。より複雑なロジックを作成するには、Python を使用してタグまたはフィルターを実装する必要があります。最近、テンプレートについて多くの議論が行われています。参考として、Python テンプレートに関する 2 つの興味深い記事があります:
1 pydanny.blogspot.com/2010/12/stupid-template-langages.html (FQ が必要です)
2 techspot .zzzeek.org/2010/12/04/in-response-to-stupid-template-langages/
URL 設定は強力ですが、すべて手作業で記述する必要があります。これは Rails の概念と完全に一致しています。設定よりも慣例 逆に、専門家と Django を初めて使用する人によって割り当てられる URL は大きく異なります。
データベース スキーマは設定されているため、問題が発生します。たとえば、多くの Web サイトでは email アドレスが一意であることが必要ですが、スキーマ内のこのフィールドの値は一意ではないため、苦労する必要があります。
一般に、Django には多くの機能があり、これを使用して Web アプリケーションを迅速に開発するのは素晴らしいことです。 Django の設計思想に従えば、Django は使いやすく、使えば使うほど使いやすくなります。逆に、Django の設計思想を受け入れられない場合、使用するのは間違いなく苦痛になります。ジャンゴ、だから早く諦めた方がいいよ。したがって、一部の人々にとってジャンゴはエリクサーと何ら変わりませんが、一部の人々にとっては毒であり、非常に有毒です。
Pylons & TurboGears & repoze.bfg
Django のほかに、もう 1 つの大きなものは Pylons です。これは、TurboGears2.x が Pylons に基づいているためです。 ze.bfg もPylons プロジェクトの大規模プロジェクトに組み込まれた TurboGears と repoze.bfg については、後で個別に説明しません。
Pylons と Django の設計コンセプトは完全に異なります。Pylons 自体には約 2,000 行の Python コードしかありませんが、Pylons でほぼ使用されているいくつかのサードパーティ モジュールも付属しています。 Pylons は 1 つのシェルフとオプションのソリューションのみを提供し、独自の好みに応じて、テンプレート、ORM、フォーム、認証などのコンポーネントを自由に選択できます。 Python はグルー言語であるとよく言われますが、Pylons はグルー言語で設計されたグルー フレームワークであると間違いなく言えます。
Pylons を選択することは、おそらく悪夢を選択したことを意味します:
Pylons を学習するとき、それらは Pylons によって作成されたものではありません。これらのライブラリの使用方法を学ぶ必要があります。重要なのは、何を学びたいのかがわからないことです。 Pylons の学習曲線は Django の学習曲線よりも比較的高く、Pylons の公式ドキュメントは以前から批判の対象となっていましたが、幸いなことに、書籍『The Definitive Guide to Pylons』が出版され、この状況は変わりました。このため、Pylons はかつては専門家のみに適した Python フレームワークとして知られていました。
デバッグは悪夢です。多くのモジュールが関係しており、一度エラーが発生すると、問題を特定するのが困難だからです。それはあなたが書いたプログラムのせいかもしれないし、Pylons が間違っているかもしれないし、SQLAlchemy が間違っているかもしれないし、あるいは formencode にバグがあるかもしれません。とにかく非常に厄介です。この問題は、それに精通している場合にのみ解決できます。 Pylons と repoze.bfg の統合により、Django の地位に挑戦できる次のフレームワークが誕生する可能性があります。
Tornado& web.py
Tornado は Web サーバー (この記事では詳しく説明しません) であり、web.py のフレームワークとしての同様のマイクロフレームワークでもあります。 Tornado このアイデアは主に Web.py から来ています。Tornado のボス、Bret Taylor の次の一節も Web.py Web サイトのホームページで見ることができます (FriendFeed に関して彼がここで言及したフレームワークは、Tornado と同じものとみなすことができます)。 「[web.py は] FriendFeed で使用する Web フレームワーク [および] App Engine に同梱される Web アプリケーション フレームワークに影響を与えました…」
この関係のため、Tornado については後で個別に説明しません。
フレームワークを合理化する利点は、フレームワーク自体についてあまり心配したり、フレームワークに干渉されたりすることなく、ビジネス ロジックに集中できることです。同時に、多くのことを行わなければならないことも明らかです。自分自身のこと。
私は個人的にこの種の合理化されたフレームワークを好みます。ソースコードを読むことでフレームワーク全体の動作メカニズムを簡単に理解できるため、フレームワークのその部分があまり満足できない場合は、独自の方法で完全にモンキーパッチを適用できます。要件。
Bottle &Flask
Bottle と Flask は、どちらも次のような URL ルーティングを構成するためにデコレーターを使用しているのが興味深いです。 Bottle、Flask は、web.py と同様、非常に合理化されており、Bottle のすべてのコードは約 2,000 行の .py ファイル内にあります。さらに、Flask は Pylons と同様に、Jinja2、SQLAlchemy などとうまく組み合わせることができます。しかし、Bottle または Flask のいずれかで成功した例はまだ非常に少ないです。
なぜ私が特に Quixote について話したいのかというと、中国最大の Python で開発された Web サイトである「Douban」が Quixote を使用して開発されたからです。ソースコードをざっと調べただけで、何も調べていないので、経験があれば追加するつもりはありません。今、Doubanが開発されていれば選択肢が増えるのではないかと思っているところです。
その他(web2py, uliweb, Karrigell, Werkzeug...)
最後に、フレームワーク選択に関する誤解フレームワークの選択に関して、多くの人が知らず知らずのうちに以下の2つの誤解に陥りがちです。 :
1. どのフレームワークが最適ですか - 世界に最適なフレームワークはありません。唯一存在するのは、あなたとあなたのチームにとって最適なフレームワークです。 プログラミング言語 選択も同様です。チームが Python に最も精通している場合は、Python を使用してください。プログラミング言語とフレームワークは単なるツールです。 、より速く、より良く、そしてより経済的です。
2. パフォーマンスに過度に注意を払う - 実際、開発する Web サイトは単に小規模な Web サイトなので、10,000 をサポートできる Web サイトは多くありません。 IP 100,000 をサポートできる Web サイトは非常に少ないです。 CPU とメモリは常にアイドル状態であるため、一定量のアクセスなしにパフォーマンスについて語るのはあまり意味がありません。さらに、言語とフレームワークは通常、パフォーマンスのボトルネックではありません。パフォーマンスの問題は、データベース アクセスとファイルの読み取りと書き込みで最もよく発生します。 PHP の Zend Framework は遅いことで有名ですが、Zend Framework には digg.com などの大きな Web サイトもあります。パフォーマンスに問題があると言われる Ruby や Rails でも twitter を開発できるのでしょうか?さらに、現在のハードウェアと帯域幅のコストは実際には非常に低く、特にクラウド コンピューティング プラットフォームの出現により、何万もの IP を持っていない場合は人件費が最も高くなります。パフォーマンスの問題については、トラフィックが増加した場合は、ある程度のお金を出してサーバーを購入してください。パフォーマンスの問題は簡単かつ迅速に解決できます。
注: 以前、一部のネチズンが「Quora は Pylons を使用して開発された」という私の発言は客観的ではないと疑問に思いましたが、ある Web サイト A が B を使用して開発された場合、それは A が主にまたは部分的に B によって開発されたことを意味するだけであることを説明してください。誰もが A を使用するか C を使用するかを心配するのをやめるべきです。
【関連おすすめ】
以上が一般的に使用される 5 つの Python Web フレームワークの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。
