首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图在CherryPy服务器上部署一个Flask应用程序

试图在CherryPy服务器上部署一个Flask应用程序
EN

Stack Overflow用户
提问于 2018-06-18 22:27:58
回答 1查看 6.3K关注 0票数 2

我试图在CherryPy服务器上部署我的Flask应用程序。我喜欢它的简单化和简约性。

所以我把CherryPy写成如下所示

代码语言:javascript
复制
pip install CherryPy-15.0.0-py2.py3-none-any.whl

并编写了如下所示的脚本,如许多源所建议的-very通用

代码语言:javascript
复制
from cherrypy import wsgiserver
from hello import app

d = wsgiserver.WSGIPathInfoDispatcher({'/': app})
server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', 80), d)

if __name__ == '__main__':
   try:
      server.start()
   except KeyboardInterrupt:
      server.stop()

令我惊讶的是,我有进口错误。在谷歌上搜索了几下之后,我了解到我必须将我的导入行更改为cheroot,才能使其工作。

代码语言:javascript
复制
from cheroot.wsgi import Server
from cheroot.wsgi import PathInfoDispatcher

现在,我的代码运行良好。但是,我有点困惑,这是使用CherryPy WSGI服务器的正确方式,还是CherryPy的错误版本。我很困惑,因为Cheroot似乎已经超过了一年(可以追溯到2014年),但是我在CherryPy WSGI服务器上发现的所有信息都是使用from cherrypy import wsgiserver,而不是from cheroot.wsgi import Server,甚至是最新的帖子。

这使我不确定我是否做了正确的事情。

有人能解释一下这种混乱吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-20 13:56:28

切鲁特 (src)是一个低级别的HTTP服务器,曾经是CherryPy (src)的一部分,但在一段时间前,它已经被单独地加入了回购。因此,以前的cherrypy.wsgiserver已经转移到了cheroot.wsgi模块。

它是完全可替换的,并且设计允许开发人员直接依赖Cheroot,如果他们只使用WSGI服务器,而不需要CherryPy的其他部分。

因此,下面是如何以不可知版本的方式使用它:

代码语言:javascript
复制
try:
    from cheroot.wsgi import Server as WSGIServer, PathInfoDispatcher
except ImportError:
    from cherrypy.wsgiserver import CherryPyWSGIServer as WSGIServer, WSGIPathInfoDispatcher as PathInfoDispatcher

from hello import app

d = PathInfoDispatcher({'/': app})
server = WSGIServer(('0.0.0.0', 80), d)

if __name__ == '__main__':
   try:
      server.start()
   except KeyboardInterrupt:
      server.stop()
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50918276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档