Как использовать CherryPy в качестве веб-сервера для статических файлов?

StackOverflow https://stackoverflow.com/questions/759627

  •  09-09-2019
  •  | 
  •  

Вопрос

Есть ли простой способ использовать CherryPy в качестве веб-сервера, который будет отображать .html файлы в какой-то папке?Во всей вводной документации CherryPy указано, что контент генерируется динамически:

import cherrypy
class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True
cherrypy.quickstart(HelloWorld())

Есть ли простой способ использовать index.html вместо метода HelloWorld.index()?

Это было полезно?

Решение

Этот простой код будет обслуживать файлы в текущем каталоге.

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()

Другие советы

Вот некоторая информация о предоставлении статического контента с помощью CherryPy: http://docs.cherrypy.org/stable/progguide/files/static.html

Кстати, вот простой способ поделиться текущим каталогом через HTTP с помощью Python:

# Python 3
$ python -m http.server [port]

# Python 2
$ python -m SimpleHTTPServer [port]
# 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 )
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top