PHPの観点からサーバー言語としてPythonを使用する方法


11

私は、PHPを使用したサーバー側プログラミングだけを知っています。私には、何かを書き込んindex.phpで呼び出しhttp://localhost/index.php、PHPスクリプトの結果を確認します。私はCakePHPを使用していて、URLの書き換えでできることを理解していますが、私の心では、URLとサーバー上のPHPファイルの間に1対1の関係があります。

今はPythonで多くのことを行っていますが、コマンドラインユーティリティのみを使用しています。次のプロジェクトでは、PHPの代わりにPythonを使用したいと思います。これまでのところ、mod_python出力を取得するにはPylonsやTwisted、さらにはDjangoのようなフレームワークを使用する必要があると言われました。他の人はprint()、HTTPヘッダーを使用するだけで、PHPで使用されているようにスクリプトが出力されると述べています。

基本的にディレクトリ一覧のみを取得し、それをきれいにして、モバイルブラウザーから多数のPDFファイルにアクセスできるようなものを書きたいと思います。PHPでこれを行う方法を知っています。HTMLを生成するPythonスクリプトを作成する方法を知っています。開いhttp://localhost/pdfcentral/たときにそのスクリプトを実行する方法がわかりません。

サーバーをどのように構成する必要がありますか?Ubuntu 10.04で動作します。


使用できるバリエーションはたくさんありますがcgi-bin、サーバーがスクリプトを実行できるようにPythonスクリプトをディレクトリに配置し、別のパスを使用する場合はオプションでPHPファイルをリダイレクトするのが最も簡単な方法です。Pythonのスクリプト自体については、この手順に従います。forrestbao.blogspot.com/2009/08/...
ionFish

回答:


9

mod_python積極的に開発されていません。Apache それがプロジェクトが死んでいることを意味しないと言っている間-

現在mod_pythonは活発に開発されていません。これは、一部の人々が主張しているように「死んだ」ことを意味するものではありません。これは、コードを維持するために必要なものがほとんどない場合に、コードとプロジェクトが十分に成熟していることを意味します。

ただし、代わりにmod_wsgiを使用することをお勧めします。それは、すべてを最初から構築したい場合です。これを学習課題として使用しているのでない限り、使用しないでください。

重い作業を行うには、Webフレームワークを使用する方がよいでしょう-ルーティング、リクエストなどを処理する

Pythonウェブフレームワークの包括的なリストはこちらにありますが、人気のあるものをいくつか紹介します-

  • Django -Ruby on Railsと同等のPythonと見なされており、非常に頑丈なため、必要なものに適していません。
  • フラスコ -マイクロフレームワークです。つまり、小型で邪魔にならないので、多くのバッテリーを必要としない小規模なプロジェクトに最適です。
  • ピラミッド-Pylonsを構築したのと同じ人々のグループによって構築されましたが、これは古くはありません。FlaskとDjangoの間のどこかにあります-どちらかの代わりとして使用できます。
  • ボトル -これは別のマイクロフレームワークであり、フラスコよりもさらに最小限です。1つのファイルであり、標準ライブラリ以外の依存関係(組み込みのテンプレートエンジンを使用している場合)がないため、必要なものにぴったりです。
  • Web.py-かつてはPowerd Reddit(取得後に新しいツールで書き直されました)。
  • webapp2 -Google App Engineの標準フレームワークです(他のフレームワークも使用できます)。

これらのうち、私はFlaskを使用したことがあり、不満がないため、Flaskをお勧めします。また、サイトでより多くの機能が必要な場合に便利な拡張機能も多数あります。

また、htmlをアセンブルするには、テンプレートエンジンが必要です。Jinja2は、Flaskを作成するのと同じ人によって作成され、かなり広く使用されています。しかし、phpWeb開発から来た場合、Makoを使用する方が自然であると感じるかもしれません。これもかなり人気があります。

Python Web開発に関するより包括的なよくある質問を次に示します-Python FAQ:Webdev


1
テストマシンでFastCGIとlighttpdを使用して実行している小さなFlaskプロジェクトを取得しました。サーバーでも実行できるはずです。どうもありがとうございました!
Martin Ueding 2013

1

私は質問を少し混乱させました。私が正しい場合、あなたの主な目的はかなりのスタイルを使用して携帯電話にファイルを提供することだと思いますか?

それが本当なら、何かを設定するためにそれほど多くのループを通過する必要はないはずです。

Apache2を使用すると、メインファイルリストディレクトリを編集できるため、たいていの場合はスタイルを設定できます。

オンラインで利用可能な多くの利用可能なメインテーマもあり、Apache2 Directory ListingのテーマをGoogleで検索するだけで、応答性を高めることも難しくありません。

Apacheのデフォルトの外観を変更する方法をいくつか紹介します

そして、チェックアウトできる既製のテンプレートがいくつかあります。もっとたくさんあります...。

リポジトリスタイル

再帰者

指数


これは最初の問題をかなりうまく解決するようです。これをPHPからPythonに移行する最初のプロジェクトとして使用できると思いました。Pythonプロジェクトが停止した場合は、これを確認します。ありがとう!
Martin Ueding 2013年

ようこそ;)
Simon Hayter
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.