Python,正在调用我的python模块

时间:2009-05-04 08:08:10

标签: python cgi

我有一个可以通过CGI脚本(从表单传递信息)或从命令行调用的Python模块(从命令行传递选项和参数)。 有没有办法确定是从CGI脚本还是从命令行调用模块?

2 个答案:

答案 0 :(得分: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.

答案 1 :(得分:6)

这是一个非常糟糕的设计理念。您的脚本应该设计为独立于其调用方式工作。呼叫程序应提供统一的环境。

如果您将脚本设计为以一致的方式工作,那么您将会感到最开心。建立这样的东西。

  • myscript.py - “实际工作” - 在函数和类中定义。

  • myscript_cgi.py - 一个导入myscript并使用类和函数的CGI接口。

  • myscript_cli.py - 解析命令行选项,导入myscript并使用类和函数的命令行界面。

执行所有三项操作(实际工作,cgi接口,cli接口)的单个脚本通常是错误的。