2011-01-13 6 views
5

私は、PHPを使用する代わりに、Webページを作成するためにPythonを試したかったのです。しかし、私はあなたがmod_pythonまたはmod_wsgiがPythonで遊べるようにApacheにインストールされている必要があることに気付きました。純粋なPythonコードを使用するのではなく、djangoのようなWebフレームワークを使用しないでください。 mod_pythonとmod_wsgiでは、単純なページを違ったものに見えることが分かりました。PythonベースのWebページを作成する2つの方法はありますか?

どうしたのですか?私はもっとPythonを見ているだけで、WebページをPHPと比較するのに使うのは難しい言語のようでした。 Python webdevelopmentを学ぶ良い出発点がありますか?

私の質問がぼやけている場合は申し訳ありません。私は単純にいくつかのガイダンスをpython webdevelopmentから始めたいと思っています。

+0

なぜ、Djangoを使用しないのですか?デプロイする必要がない限り、純粋なPythonについて特別なことは何もありません。 – orlp

+0

ええ、あなたがPythonを探っているだけなら、DjangoやPylonsのようなフレームワークを試してみてください。私も同じことをしています。私はPylonsをアップして、Ubuntuのラップトップで1時間半かかります。 (もちろん、私はまだフレームワークのすべてを知るために多くの読書をしていますが、今は基本ページを少なくとも行うことができます。) – keithjgrant

+1

このようなフレームワークを一見して「より難しく」見える理由は、このような開発がより組織化され、異なる懸念を分離し、コードをどこにでもダンプすることからプレゼンテーション、ロジック、これは良いことです。 –

答えて

3

はい、Webフレームワークを使わずにPythonでWebページを作るのは、PHPよりも難しいです。これは、ページがサーバーとどのようにやりとりするかをより詳細に制御できるため、他のメリットの中でも、拡張性の高いサイトを構築できるため、設計によるものです。 WSGIはサーバーとやりとりするための現代的な方法ですが、ご存知のように、PHPがユーザーから隠すナットとボルトの多くが含まれています。

pythonのような経験をお探しの場合は、web.pyまたはFlaskをご覧ください。フレームワークが実現する限りは、最小限に抑えられており、サーバーとのやりとりは可能ですが、それ以外の方法はありません。

これは、Djangoや他の同様のフレームワークを考慮する必要があります。本当に大きな利点があります。彼らはわずかに異なる問題を解決し、一般的なPHPフレームワークとは異なるソリューションを提供します。したがって、PHPでフレームワークが嫌いな場合でもそれらを考慮する必要があります。

phpのようなやり方でやりたければ、CGIを使うことができます。それは間違いなく推奨される解決策ではなく、ベストプラクティスを進歩させることを教えてくれるわけではありませんが、それはあなたに始めることができます...

本当に、フレームワークを考えてみましょう。これは、Web用のPythonのほとんどの開発がどのように行われているかを示しています。

0

普通のCGIを使用できますが、これは本当に簡単です。このファイルを実行可能(chmod +x)を作成し、あなたのWebサーバでCGIファイル用に設定したディレクトリに置く

#!/usr/bin/env python 

import sys 

sys.stdout.write("Content-type: text/html\r\n\r\n") 

print("Hello <em>world</em>!") 

:次のようになりますPythonプログラムを作成します。

標準のPython cgiモジュールも非常に役に立ちます。

1

mod_wsgiは、Webアプリケーション(またはフレームワーク)とWebサーバー間のインターフェイスを定義するWSGI仕様に基づいているため、より優れています。最も単純なWSGIアプリケーションは、HTTPヘッダーをコールバック経由で送信し、HTTP要求に関する情報に応じて文字列を返す関数です。 WSGIは多くのWebサーバーによって実装されているため、Apacheには結びついていません。

Pythonの純粋なフレームワークなしWeb開発に最も近いのは、WSGIアプリケーションを直接書くことです。これはDjangoのようなフレームワークがあいまいになることを実際に見るのに役立ちます。

WSGIのユーティリティライブラリであるWerkzeugを使用することを検討してください。それはフレームワークのような多くのコンポーネントを持っていますが、あなたはあなたが望むものとそうでないものを選ぶことができます。たとえば、URLの解析とディスパッチには本当にきれいなシステムがあります。 Werkzeugには簡単なコマンドラインWSGIサーバーもあります。これはおそらくApacheよりも開発の方が優れています。

0

あなたの目標があなたのpythonプログラムをウェブフレンドリーにするためのものなら、答えはCherrypyです。これは、Webで公開されているPythonオブジェクトを有効にする、非常に柔軟でシンプルなフレームワークです。それをチェックして、Apache/mod_wsgiなどを必要としない優れたWebサーバーが組み込まれています。

1

私はあなたと非常に似た状況にあった人物ちょうど数ヶ月前。

あなたはウェブサイトをホストするためにApacheを使用しています。カッコいい。 pythonがApacheでうまくいくようにするために、mod_wsgiを使いたいと思っています。なぜなら、懸念の分離はcgiよりも優れており、mod_pythonはもはやサポートされていません。

しかし、前述のフレームワークが「純粋な」Pythonでプログラミングに近づくという印象は、少し外れています。私は同じ意見を共有し、Djangoとmod_wsgiだけを使って実験しました。私が見つけたものを分かち合いましょう。

Mod_wsgiは、PEP 333にあるWSGI標準の実装です。実装と標準の区別は重要です。第一に、WSGI準拠のアプリケーションが実装全体で機能することを意味するためです。さらに重要なことは、WSGIが何を意味するかについて重要なことが明らかになります。つまり、WSGIはフレームワークを作成するための標準となるものです。 PEPから:フレームワークの作者のための実装の

シンプルさは、Webアプリケーションの作者

のための使いやすさと同じものではありませんWSGIの目標はにあります既存のサーバーとアプリケーションまたはフレームワークの簡単な相互接続を容易にし、新しいWebフレームワークを作成することはできません。

私はあなたがwsgiで何かをしてはいけないと言っているわけではありませんが、アプリケーション以上のフレームワークを書くことが期待されます。あなたがシンプルなフレームワークを書くことに興味があれば、this tutorialは私が始めた場所です。

しかし、ウェブサイトを作成するだけであれば、他の人が提案しているフレームワークの1つを調べてください。あなたはまだPythonコードを書いていますが、著者はフレームワークを作成するよりも、より密接に接続されたウェブサイトを作成するためのコードを作ることに熱心に取り組んでいます。私は個人的にDjangoを使用していましたが、一度起動してしまえば、興味深いアプリケーションを作成するのはむしろ苦労しました。また、彼らのドキュメントは非常に良いです、彼らは良いチュートリアルhereを持っています。それはDjangoが完全に機能していると言われています。少しだけミニマルなものを探しているなら、Flaskについてよく聞きましたが、他にもたくさんのオプションがあります。

関連する問題