12

詳細を皆さんに負担させたくはありませんが、基本的に私は2年生の計算機科学の学生であり、Web開発の経験はありません。

基本的には、htmlフォームからの入力を受け取り、Pythonスクリプトに計算を実行させ、それらの結果をブラウザーに再表示する小さな「Webアプリ」を作成したいと思います。

今のところ、フォームとスクリプトを作成しています。ただし、フォームをテストしようとすると、スクリプトを実行する代わりに、ブラウザがフォームをダウンロードしようとします。私の理解では、これはcgiスクリプトの問題であり、このスクリプトをテストするにはWebサーバーを作成する必要があります。

そして、ここで私は立ち往生していました。Webサーバーとそのセットアップ方法についてはほとんど何も知りません。その上、GCIスクリプトは過去のものであり、正しく実行するには大きなオーバーヘッドが必要であると聞きました。

これは私の質問につながります。アプリを完成させてcgiスクリプトをテストするにはどうすればよいですか?私はapacheをインストールしてそれをいじくり回しますか、それともgoogle app engineのようなものを調べる必要がありますか?cgiスクリプトなしでこのタスクを完了する他の方法はありますか?Djangoのようなフレームワークはどこに適合しますか?

4

5 に答える 5

13

Django は素晴らしく、すべてを包括し、十分にサポートされていますが、小さな Web アプリケーションには多すぎる場合があります。Django は、最初からそのルールに従ってプレイすることを望んでいます。必要でない場合は、データベースや管理パネルなどを避ける必要があります。また、Django を使用すると、単純なアプリには複雑すぎる場合でも、プロジェクトのレイアウトに従うのが簡単になります。

小さなアプリには、いわゆるマイクロ フレームワークの方が適しているかもしれません。それらは反対の原則に基づいて構築されています。今は最小限の機能を使用し、必要に応じてさらに追加してください。

  • Flaskは Werkzeug WSGI ライブラリと Jinja2 テンプレート (後者は切り替え可能) に基づいており、( virtualenv などに関するメモと共に) 広範囲に文書化されており、小規模なアプリにも大規模なアプリにも同様に適しています。自動リロード開発サーバー (開発マシンに Apache は必要ありません) と Werkzeug を利用した対話型デバッガーがバンドルされています。HTML フォームデータベース ORMなどの拡張機能があります。

  • ボトルはマイクロフレームワークが取得できるほど小さく、1 つのファイルで構成され、開発サーバーが含まれています。それをプロジェクト フォルダーにドロップして、ハッキングを開始します。組み込みの SimpleTemplate テンプレート エンジンは切り替え可能ですが、開発サーバーは Flask に比べて不安定です。ドキュメンテーションはそれほど完全ではなく、私の意見では、全体がFlaskほど洗練されておらず、便利ではありません.

どちらの場合も、dev サーバーをローカルで使用してから、両方のフレームワークがサポートする Python Web アプリのサーバー インターフェイスである WSGI を使用してデプロイします。WSGI アプリをデプロイする方法は多数ありますが、Apachemod_wsgiは人気のある方法の 1 つです。

1 つの依存関係 (Bottle) が 3 つ (Flask、Jinja2、および Werkzeug) より優れていない限り、私は完全に Flask を使用します。

(他にも多くのフレームワークがあるので、ユーザーが来てそれらについて話すのを待ちます。web.pyは避けることをお勧めします。これは機能しますが、魔法に満ちており、Flask や Bottle に比べてエレガントではありません。)

于 2012-05-27T23:11:43.287 に答える
5

webapp をすぐに使えるようにする 1 つの方法は、まず App Engine の「ゲストブック」の例のようなものを理解してから変更することです。これには、Web サーバーの実行とデータベース サーバーのセットアップ (持続性が必要な場合) の面倒な作業の多くが自動的に行われるという利点があります。App Engine は、かなり柔軟な開発環境も提供します。これが唯一の方法ではないことは確かです。偏見があることは認めますが、かなり摩擦が少ない方法です。

GCI スクリプティングはほとんど過去のものではありませんが、クールな子供たちが行っていることではありません。CGI には生の配管をより多く公開するという利点と呪いがあります。原始的な (低レベルの意味での) Web アーキテクチャーについて多くのことを理解する必要がありますが、すぐに解決すべき問題があり、それをより簡単な手段で解決できる場合は、少し噛み砕く必要があります。

于 2012-05-28T04:10:22.657 に答える
4

最近のほとんどの Python Web 開発は、フレームワークによって行われているようです。これにはいくつかの理由があります。

  1. 豊富な成熟したツール。Django には、組み込みのユーザー認証、組み込みのデータベース管理、組み込みのセッション、ほぼすべての ORM が組み込まれているため、いくつかのデータベースをシームレスにサポートできます。

  2. 組み込みの Web サーバー。django や pylons などのより大きな Python フレームワークには、Web サーバーが組み込まれています。Django には非常に単純な Web サーバーpython manage.py startserver(非常に単純) があり、アプリケーションの作成とデバッグが非常に簡単になります。シングルスレッドであるため、デバッガーをドロップするのは簡単です

  3. 巨大なコミュニティ。django に関する質問がある場合は、非常に迅速に回答されるため、コミュニティは巨大です。

django チュートリアルでは、開発の主要な側面をすべて紹介します。わずか 4 ページしかないため、Apache の設定を読んだり、学習したり、いじったりするよりも、はるかに簡単にアプリを作成できます。 https://docs.djangoproject.com/en/dev/intro/tutorial01/

アプリが1つのフォームとそれを処理するスクリプトだけになる場合、今のところdjangoはやり過ぎかもしれません。シームレスなテスト フレームワークにより、あらゆるプロジェクトを非常に簡単に拡張できます。私はフラスコやボトル、その他のマイクロフレームワークを使用したことはありませんが、あなたのプロジェクトが将来どこにあるのかを心に留めておきます.

django は、プレゼンテーション (テンプレート)、データ管理 (サーバー orm)、認証、ミドルウェア、フォームなど、完全に包括的な Web アプリケーションを作成するために必要なすべてを含むフルスタック フレームワークです。Django およびその他のほとんどすべての Python フレームワークは、wsgi 標準を実装しています。これは、Web サーバー間の相互運用を可能にするインターフェースです。 http://en.wikipedia.org/wiki/Web_Server_Gateway_Interface かなり乾燥しているため、直接接続する必要はありません。それが、これらのフレームワークが内部で行うことです。

于 2012-05-27T23:10:19.613 に答える
2

App Engineを使用できるのに、なぜ独自のウェブサーバーをセットアップして維持するのか。コードをテストするための優れたSDKがあります。これが例です https://developers.google.com/appengine/docs/python/gettingstarted/handlingforms

そして、Djangoはここにあります:https : //developers.google.com/appengine/docs/python/gettingstarted/templatesテンプレートにはJinjaを使用することを好みます。

于 2012-05-27T22:07:39.213 に答える
-1

Djangoには独自のサーバーが付属していますが、あなたの場合、構築しているサイトはかなり単純なように見えるため、apacheとmod_pythonをお勧めします.

Apache のセットアップは簡単で、Web で簡単に検索するだけで、必要なすべての情報が得られます。mod_python の詳細については、ここで少し読んでから、ニーズに合ったチュートリアルの後にグーグルで検索できます。

于 2012-05-27T21:55:02.170 に答える