使用CherryPy作为在某个文件夹中显示.html
个文件的Web服务器是否容易?所有CherryPy介绍文档都指出内容是动态生成的:
import cherrypy
class HelloWorld(object):
def index(self):
return "Hello World!"
index.exposed = True
cherrypy.quickstart(HelloWorld())
使用index.html
代替HelloWorld.index()方法是否容易?
答案 0 :(得分:33)
这个简单的代码将提供当前目录中的文件。
import os
import cherrypy
PATH = os.path.abspath(os.path.dirname(__file__))
class Root(object): pass
cherrypy.tree.mount(Root(), '/', config={
'/': {
'tools.staticdir.on': True,
'tools.staticdir.dir': PATH,
'tools.staticdir.index': 'index.html',
},
})
cherrypy.quickstart()
答案 1 :(得分:7)
以下是有关使用CherryPy提供静态内容的一些信息:http://docs.cherrypy.org/stable/progguide/files/static.html
BTW,这是一种通过HTTP与python共享当前目录的简单方法:
# Python 3 $ python -m http.server [port] # Python 2 $ python -m SimpleHTTPServer [port]
答案 2 :(得分:0)
# encode: utf-8
import cherrypy
WEB_ROOT = "c:\\webserver\\root\\"
class CServer( object ) :
@cherrypy.expose
def do_contact(self, **params):
pass
cherrypy.server.socket_port = 80
# INADDR_ANY: listen on all interfaces
cherrypy.server.socket_host = '0.0.0.0'
conf = { '/':
{ 'tools.staticdir.on' : True,
'tools.staticdir.dir' : WEB_ROOT,
'tools.staticdir.index' : 'index.html' } }
cherrypy.quickstart( CServer(), config = conf )
答案 3 :(得分:0)
我发布此新答案是因为已接受答案的解决方案已过时。 这个简单的代码将在当前目录中提供文件。
import os
import cherrypy
PATH = os.path.abspath(os.path.dirname(__file__))
class Root(object): pass
cherrypy.tree.mount(Root(), '/', config={
'/': {
'tools.staticdir.on': True,
'tools.staticdir.dir': PATH,
'tools.staticdir.index': 'index.html',
},
})
cherrypy.engine.start()
cherrypy.engine.block()
当然,这只是对已经发布的内容的总结。