我有一个Python模块,可以通过CGI脚本(从表单传递信息)或从命令行调用(从命令行传递选项和参数).有没有办法确定模块是从CGI脚本还是从命令行调用?
这样做:
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.
Run Code Online (Sandbox Code Playgroud)
这是一个非常糟糕的设计理念.您的脚本应设计为独立于其调用方式而工作.呼叫程序应提供统一的环境.
如果您将脚本设计为以一致的方式工作,那么您将会感到最开心.建立这样的东西.
myscript.py - "实际工作" - 在函数和类中定义.
myscript_cgi.py - 一个导入myscript并使用类和函数的CGI接口.
myscript_cli.py - 解析命令行选项的命令行界面,导入myscript,并使用类和函数.
完成所有三件事(真正的工作,cgi接口,cli接口)的单个脚本通常是一个错误.