我有一個Python模塊,可以由CGI腳本(從表單傳遞它的信息)或從命令行(從命令行傳遞它的選項和參數)調用。 有沒有辦法確定模塊是從CGI腳本還是從命令行調用?Python,誰打電話給我的Python模塊
3
A
回答
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.
6
這是一個非常糟糕的設計理念。你的腳本應該被設計爲獨立於它的調用方式。呼叫方案應提供一個統一的環境。
如果您將腳本設計爲以完全一致的方式工作,您將會感到最開心。建立這樣的事情。
myscript.py - 「真正的工作」 - 在函數和類中定義的。
myscript_cgi.py - 一個導入myscript並使用類和函數的CGI接口。
myscript_cli.py - 解析命令行選項,導入myscript並使用類和函數的命令行界面。
一個腳本,做所有的三件事(實際工作中,CGI接口,CLI界面),通常是一個錯誤。
+0
嗨,感謝您的建議!我會按照你的建議去做... P.S.我已經開始閱讀你的書了,我真的很喜歡它! 再見 – wheisenberg 2009-05-05 12:54:23
相關問題
- 1. Python - 我可以訪問誰打電話給我?
- 2. DRb,「誰打電話給我」方法
- 3. WSO2 ESB誰打電話給我
- 4. 打電話給空閒塊
- 5. VS2010 c#找到誰打電話給我的索引器
- 6. 打電話給我在JavaScript模型html.erb
- 7. Python - 有沒有辦法讓誰打電話(從IDLE/Shell調用)
- 8. 誰打電話Linux系統
- 9. 的Python __import__只給我頂層模塊
- 10. 禁止打印電話(python)
- 11. 當我打電話給CGRectIntersectsRect
- 12. 打電話給
- 13. 當我打電話給我的DBI模塊時,「無法在@INC中找到version.pm」
- 14. 打電話給帶參數的模板
- 15. 當使用Steam的OpenVR時誰打電話給()(如果有人)?
- 16. 打電話給我的網頁,jQuery的
- 17. 打電話給gc.collect()
- 18. 哪裏打電話給我的通知?
- 19. PHP打電話給我自己的JSON
- 20. laravel給我FatalThrowableError:打電話的空
- 21. Python,電話簿
- 22. 誰曾打電話給Activity onAttachedToWindow方法,何時
- 23. Asterisk誰每分鐘打電話?
- 24. 何時和誰打電話+初始化?
- 25. NLOG:登錄誰打電話IIS
- 26. 用於會話管理的Python模塊
- 27. python 3中的電子郵件模塊
- 28. 無法導入熊貓模塊; python從舊的Python會話打印AttributeError
- 29. Codeigniter不會讓我打電話給模型,這是真的
- 30. 創建動態UITextField並添加UIControlEvents.EditingChanged事件:誰打電話給我?
非常感謝您的回答!我剛剛嘗試過,它的工作原理... – wheisenberg 2009-05-04 08:22:06