使用CGI部署Flask应用程序

mon*_*top 10 python cgi flask

我使用Flask框架编写了一个小应用程序.我尝试使用cgi来托管这个.在文档之后,我创建了一个包含以下内容的.cgi文件:

#!/usr/bin/python
from wsgiref.handlers import CGIHandler
from yourapplication import app

CGIHandler().run(app)
Run Code Online (Sandbox Code Playgroud)

运行该文件会导致以下错误:

...

文件"/usr/lib/pymodules/python2.7/werkzeug/routing.py",第1075行,在bind_to_environ中wsgi_server_name = environ.get('HTTP_HOST',environ ['SERVER_NAME'])
KeyError:'SERVER_NAME'
状态:500内部服务器错误
内容类型:text/plain
Content-Length:59

在我的应用程序中,我设置:

app.config['SERVER_NAME'] = 'localhost:5000'
Run Code Online (Sandbox Code Playgroud)

当我使用Flask开发服务器运行应用程序时,它运行得非常好.你可以告诉我,我对这些东西很新,我已经找到了其他有类似错误但没有运气的人.所有帮助表示赞赏.

mkr*_*eli 0

为了完整起见,这是作为上述评论之后的答案发布的。

如上所述,cgi 脚本应该由某个服务器执行。以下是CGI 1.1 RFC 的摘要:

通用网关接口(CGI)是一个简单的接口,用于以独立于平台的方式在信息服务器下运行外部程序、软件或网关。目前支持的信息服务器是HTTP 服务器。

对于环境变量(缺少并触发错误),请参阅 RFC 中的 sectuib 4.1。