我写了一篇小小的文章" HelloWorld"示例,cp
开始没有问题。但是当我向http://domain.com:8888
如果我更改了请求的端口,则会收到浏览器错误,指出此资源无法访问,因此我猜cp
通常可以访问但不显示任何内容。
任何想法我做错了什么?
以下是cp的来源:
import MySQLdb as mdb
import cherrypy as cp
class HelloWorld(object):
@cp.expose
def index(self):
return ("gurk")
@cp.expose
def default(self):
return "default"
def run_server():
# Set the configuration of the web server
cp.config.update({
'engine.autoreload.on': True,
'log.screen': True,
'server.socket_port': 8888,
'server.socket_host': '0.0.0.0'
})
# Start the CherryPy WSGI web server
cp.root = HelloWorld()
cp.engine.start()
cp.engine.block()
if __name__ == "__main__":
cp.log("main")
run_server()
答案 0 :(得分:1)
你从哪里得到cp.root = HelloWorld()
?对于属性的值,CherryPy方面没有期望,因此它比cp.blahblah = HelloWorld()
更有意义。您的run_server
应如下所示:
def run_server():
# Set the configuration of the web server
cp.config.update({
'engine.autoreload.on': True,
'log.screen': True,
'server.socket_port': 8888,
'server.socket_host': '0.0.0.0'
})
# Mount the application to CherryPy tree
cp.tree.mount(HelloWorld(), '/')
# Start the CherryPy WSGI web server
cp.engine.start()
cp.engine.block()
此外,您的default
处理程序似乎也不正确。它至少需要一个可变的位置参数参数,例如*args
。 CherryPy会用路径段填充它,例如('foo', 'bar')
的{{1}}。
/foo/bar