为什么要避免使用LAMP托管的Python CGI?

And*_*ift 22 php python .htaccess cgi

我已经使用PHP多年了.最近我遇到过很多论坛帖子,说明PHP已经过时,现代编程语言更容易,更安全等等.

所以,我决定开始学习Python.因为我习惯使用PHP,所以我刚开始通过上传.htaccess文件来构建页面:

addtype text/html py
addhandler cgi-script .py
Run Code Online (Sandbox Code Playgroud)

然后,我的示例页面如下所示:

#!/usr/bin/python
print "content-type: text/html\n\n"
print "html tags, more stuff, etc."

这很好用.但是,我在帖子中发现了一条评论说CGI不是使用Python的最佳方式.当然,它没有提到什么最好的方法.

为什么使用CGI不是使用Python的最佳方式?有什么选择?

没有其他方法来设置一个简单的Python网站?我应该在.htaccess和.py文件之外看一些完全不同的范例吗?

有关

var*_*tec 11

经典CGI根本不是使用任何东西的最佳方式.使用经典的CGI服务器必须为每个请求生成一个新进程.

至于Python,你有几个选择:

  • 对于共享主机服务用户 - 这可能意味着本帖子的大多数读者 - 这种约束并不真正相关,因为这种共享主机配置总是使用UID/GID访问控制来分离各个用户帐户,因此总是产生一个单独的进程*任何*脚本URI - PHP,Python无论如何. (2认同)

bob*_*nce 5

为什么使用CGI不是使用Python的最佳方式?

我会坚持CGI一点点.这对开发环境有好处.

接线简单,您不必担心模块重新加载问题.自然表现很糟糕,但对于开发者你并不在意.

当然你应该直接写入WSGI接口而不是CGI.然后,您可以使用以下方式通过CGI进

wsgiref.handlers.CGIHandler().run(application)
Run Code Online (Sandbox Code Playgroud)

并且使用相同的应用程序对象通过mod_wsgi在生产环境中的其他任何WSGI服务器进行部署,其中速度很重要(以及您希望它尽可能接近生产的测试环境).