2009-05-04 14 views
3

CGIスクリプト(フォームから情報を渡す)またはコマンドラインから(コマンドラインからオプションと引数を渡して)呼び出すことができるPythonモジュールが1つあります。 モジュールがCGIスクリプトかコマンドラインから呼び出されたかどうかを確認する方法はありますか?私のPythonモジュールを呼び出すPython

答えて

9

これはそれを行います。

import os 
if os.environ.has_key('REQUEST_METHOD'): 
    # You're being run as a CGI script. 
else: 
    # You're being run from the command line. 
+0

お返事ありがとうございます!私はちょうど試みたし、それは動作します... – wheisenberg

6

これは本当に悪いデザインのアイデアです。スクリプトは、呼び出される方法とは関係なく動作するように設計する必要があります。呼び出しプログラムは、一様な環境を提供する必要があります。

スクリプトをまったく一貫した方法で動作させるように設計すると幸いです。このようなものを作る。

  • myscript.py - 関数とクラスで定義された「実際の作業」。

  • myscript_cgi.py - myscriptをインポートし、クラスと関数を使用するCGIインターフェイスです。

  • myscript_cli.py - コマンドラインオプションを解析し、myscriptをインポートし、クラスと関数を使用するコマンドラインインターフェイスです。

3つすべてのことを行う単一のスクリプト(実際の作業、CGIインターフェイス、CLIインターフェイス)は通常間違いです。

+0

こんにちは、アドバイスありがとう!私はあなたが提案するように... P.S.私はあなたの本を読んで始めた、私は本当にそれを湖! さようなら – wheisenberg

関連する問題