0

我正在尝试从 Cherrypy 转移到 Bottle & Gevent(服务器)。
我运行后:

application=bottle.default_app() #bottle
WSGIServer(('', port), application, spawn=None).serve_forever() #gevent

我想重新启动服务器,就像重新加载器重新加载服务器一样(但只有当我告诉服务器时)。
所以我想访问一个带有凭据请求的页面,只有在正确的身份验证后才会重新启动。

这是我在 Cherrypy 中的功能示例:

@expose
def reloadMe(self, u=None, p=None):
    if u=="username" and p=="password":
        engine.restart()
    raise HTTPRedirect('/')

更简单地说,我问我如何重新加载这个脚本,以便实现我对源文件的编辑,但只有当我检索“重新启动”页面时。
我实际上只需要 Bottlepy 相当于

engine.restart() #cherrypy

没有人知道如何做到这一点?

4

1 回答 1

1

您可以编写一个小的 shell 脚本来重新启动 gevent wsgi 服务器。

然后使用此代码,您可以调用脚本。

@get('/restartmyserver')
def handler():
    http_auth_data = bottle.request.auth() # returns a tuple (username,password) only basic auth.
    if http_auth_data[0] == user and http_auth_data[1] == password:
        os.system("your_shell_script_to_restart_gevent_wsgi")
    bottle.redirect('/')

如果您需要更多信息,请告诉我。

于 2012-06-25T03:36:16.143 回答