8


2

これは two questionsのフォローアップです。一週間かそこら前に尋ねた。 その結果、私はWeb用のAIベースのアプリケーションのプロトタイプを作成していたので、どの言語を使用するのかと思いました。 結論としては、私はpythonのようなものに行き、それから重要な部分をJavaやC / Cのような速いものに変換するべきだと考えました。

それは私には問題ないように思えますが、私は今pythonが本当にWebアプリケーションを構築するのに使うべき正しい言語であるかどうか疑問に思います。 私が過去に作業したほとんどのWebアプリケーションはC / C CGI、そしてphpでした。 ユーザーインターフェイスとバックエンドのリンクが非常に簡単になったため、操作しやすくなったphpは、論理的にも意味があります。

私はこれまでPythonを使ったことがありませんが、基本的に疑問に思っているのは、PythonでのCGIプログラミングがどれほど簡単なのかということです。 HTMLコードをテンプレートに格納してCGIに読み込ませ、特別なコードを適切な値に置き換える必要があるという、C / Cでの面倒なやり方に戻らなければなりませんか。 PHPと同じようにコード?

私はおそらくここで深く無知な質問をしています、私は謝罪します、しかしうまくいけば誰かが私が何を得ているか知っているでしょう! 私の全体的な質問は、PythonでWebアプリケーションを書くことは良い考えです、そしてそれはphpを使うのと同じくらい簡単ですか?

4 Answer


17


Pythonは良い選択です。

私はCGIモデルを避けたいと思います - あなたはそれぞれの要求でインタプリタの立ち上げに対して大きなペナルティを払うでしょう。 ほとんどのPython Webフレームワークは WSGI標準をサポートしており、さまざまな方法でサーバーに接続することができますが、そのほとんどはWebサーバーが実行しているある種の長時間実行プロセスにあります。 (プロキシ、FastCGI、SCGIなどを介して)と通信します。

フレームワークと言えば、Pythonの展望はそれらに熟しています。 これは善と悪です。 多くの素晴らしい選択肢がありますが、それは新参者にとっては気が遠くなる可能性があります。

もしあなたがweb / DB / templating統合と一緒にパッケージされた何かを探しているなら、私は DjangoTurboGearsまたはhttp:を見ることを勧めます。 //www.pylonshq.com [Pylons]。 個々のコンポーネントをもっと制御したい場合は、http://www.cherrypy.org [CherryPy]、 Colubrid、またはhttp://www.webpyを参照してください。 .org [web.py]

それが「PHPと同じくらい簡単」であるかどうかに関しては、それは主観的です。 通常、Python Webプログラミングの世界では、テンプレートとアプリケーションロジックを別々にしておくことをお勧めします。これにより、_ライフ_が簡単になります。 一方、PHPファイルでページのすべてのコードを記述できるということは、 "easy"のもう1つの定義です。

がんばろう。


8


「pythonでのCGIプログラミングはどれほど簡単ですか?」 Cよりも簡単です、それは確かです。 PythonはC言語よりも簡単に動作する言語です。 まず第一に:いいえメモリ割り当て - 割り当て解除。 それを超えて、オブジェクト指向プログラミングモデルは優れています。

基本的な言語の単純さを超えて、Pythonのhttp://www.wsgi.org/wsgi/ [WSGI]標準は、CGI標準よりもはるかに簡単に対処できます。

しかし、生のCGIは、非常に単純化された全Pythonフレームワークの世界(http://turbogears.org/ [TurboGears]、http://www.cherrypy.org/ [チェリーピー]、http:と比較すると、非常に苦痛です。 //www.djangoproject.com/ [Django]、何でも)

フレームワークは多くの(必要な)構造を課します。 CGIプログラマーにとってすぐに使える経験は、学ぶには多すぎるということです。 そうです。 すべての新しいことは習得するには多すぎます。 しかし、その価値は投資をはるかに超えています。

Djangoを使えば、数分で起動します。 真剣に。 `django-admin.py startproject`なら、すぐに実行できるものがあります。 あなたはあなたのURLをデザインし、ビュー関数を書き、そしてページテンプレートをデザインする必要があります。 すべてが仕事です。 しかし、それはCのCGIよりも_無_の仕事です。

プレゼンテーションテンプレートは処理から完全に分離されているので、DjangoはPHPよりも優れたアーキテクチャを持っています。 これは混乱を招きます(https://stackoverflow.com/questions/276345/syntax-error-whenever-i-put-python-code-inside-a-django-template[Syntaxエラーを参照してください。 django template])Djangoフレームワークで自由で制約のないPHPスタイルを使いたい場合。

ユーザーインターフェースをバックエンドにリンクする

Pythonフロントエンド(例えばDjango)はPythonのビュー関数を使います。 これらのビュー関数には、Pythonコードをすべて含めることができます。 必要ならば、Cで書かれPythonから呼び出し可能なモジュールも含まれます。

つまり、あなたはhttp://clipsrules.sourceforge.net/[CLIPS]モジュールをPythonにやさしいインターフェースでコンパイルすることができます。 それはあなたのPythonコードで `import`文を使って利用できるものになります。

しかし、時にあなたのDjangoページがCLIPSエンジンの完成を待っているので、それは効果的ではありません。 別の方法は名前付きパイプのようなものを使うことです。

あなたは名前付きパイプから読んで、Cで完全に書かれたあなたのCLIPSベースのアプリを持っています。 完全にPythonで書かれたDjangoアプリケーションは、その名前付きパイプに書き込みます。 2つの独立したプロセスがあるので、このようにしてすべてのコアをすぐに最大限に活用できます。


5


私は Djangoをお勧めしますが、あなたが何かを求めるのであれば "phpを使うのと同じくらい簡単" _それであなたはPSPを見なければなりません(http:// www。 modpython.org/live/current/doc-html/pyapi-psp.html[Python Server Pages])。 DjangoはWebサイトを作成するための完全なフレームワークですが、PSPはPHPと同じ方法で使用できますが、フレームワークは必要ありません。


3


それはphpよりもpythonでウェブアプリを書くのが簡単です。 特にpythonは壊れた言語ではありません。

mod_wsgiをサポートするWebフレームワークを選択するか、独自のものを公開してください。 WSGIアプリは、手に入れたあとで本当に簡単にデプロイできます。

テンプレートが欲しいのなら、genshiは私がpython用に見つけた最高のテンプレートエンジンであり、好きなように使えます。