标题是不言自明的,所以我只展示一些我到目前为止尝试过的代码:
来自https://stackoverflow.com/a/713950,
import cherrypy
from cherrypy import expose
cherrypy.config.update({'server.socket_port': 80})
class Test:
@expose
def test_call(self):
return "Testing"
cherrypy.quickstart(Test())
此外,从另一个 SO 帖子中,有以下两个变体:
cherrypy.config.update({
'server.socket_port': 80,
'/': {
'request.dispatch': cherrypy.dispatch.MethodDispatcher(),
'tools.trailing_slash.on': False
}
})
class Test:
def test_call(self, *args):
return json.dumps(args)
test_call.exposed = True
class API:
def __init__(self):
self.Test = Test()
class Root:
def __init__(self):
self.API = API()
cherrypy.tree.mount(Root())
cherrypy.quickstart(Root())
此处建议使用变体:CherryPy 中未找到路径
cherrypy.quickstart(cherrypy.Application(Root(), '/', {}))
我运行这些并访问http://mysite.com/test_call,或者在另一种情况下访问 mysite.com/api/test/test_call,除了返回 404 之外,这些似乎都没有做任何事情。想法?
如果它只是让我公开一些函数调用来转储 JSON,我完全愿意尝试不同的框架。我不需要任何花哨或酷炫的东西,只要发挥作用即可。
编辑:显然我的问题是服务器默认期望是本地主机,这基本上让我成为一个白痴。添加cherrypy.server.socket_host = "mydomain.com"
修复此问题。