【发布时间】:2015-04-03 04:25:11
【问题描述】:
我有一个使用瓶子框架开发的 python 网络应用程序。我的瓶子应用程序是提供返回 JSon 数据的方法的 Web API,因此不需要静态内容。我正在尝试使用 CherryPy 服务器将其部署到生产环境,该服务器应该对生产应用程序来说是健壮的。
我的 web_api.py 文件(我的瓶子应用程序)看起来像这样:
from bottle import Bottle, request
app = Bottle()
@app.get('/stuff')
def do_stuff():
'''
Method that does stuff.
'''
stuff = {'data': 'some data'}
# Return the environment info as Json data
return stuff
我有一个 server.py 文件,用于在 CherryPy 服务器上启动 Bottle 应用程序,如下所示:
from my_package.web_api import app
from cherrypy.wsgiserver import CherryPyWSGIServer
server = CherryPyWSGIServer(
('0.0.0.0', 80),
app,
server_name='My_App',
numthreads=30)
server.start()
所以当我使用这个命令运行我的服务器时:
python server.py
我的服务器已成功启动并按预期开始监听端口 80。但是,一旦我启动我的网络服务器,我就无法再停止它了。我试过 Ctrl + C 可以与开发服务器一起使用,但在这里没有效果。我是否以正确的方式启动服务器?运行后如何停止?这是通过 CherryPy 启动 Bottle 应用的正确方法吗?
顺便说一句,我在 Windows 8 中运行 python 2.7。
【问题讨论】:
-
现在(2017 年)查看此问题的任何人都应该被告知,这在最新版本的 CherryPy 中不起作用。 Since version 9.0.0(2017 年 1 月),cherrypy.wsgiserver 移至 Cheroot。