Tengo un problema con lo que debería ser un concepto básico en cherrypy pero aún no he podido encontrar un tutorial o un ejemplo sobre cómo hacerlo (soy un novato cerebrito, sé gentil) .Archivos estáticos html en Cherrypy
El problema. (Esta es una pieza de prueba, por lo tanto, la falta de autentificación robusta y sesiones en el código)
El usuario va a la página index.html que es una página de inicio de sesión. Escribe los detalles y si los detalles no coinciden con está en el archivo, se devuelve y se muestra un mensaje de error. ¡Esto funciona! Si los detalles son correctos, se muestra un archivo html diferente al usuario (network.html) Este es el bit en el que no puedo trabajar.
El sistema de ficheros actual es el siguiente: -
AppFolder
- main.py (main CherryPy file)
- media (folder)
- css (folder)
- js (folder)
- index.html
- network.html
El diseño de los archivos parece estar bien como puedo acceder al index.html El código es el siguiente: (Tengo un comentario lugares donde estoy tratando de devolver la nueva página)
import cherrypy
import webbrowser
import os
import simplejson
import sys
from backendSystem.database.authentication import SiteAuth
MEDIA_DIR = os.path.join(os.path.abspath("."), u"media")
class LoginPage(object):
@cherrypy.expose
def index(self):
return open(os.path.join(MEDIA_DIR, u'index.html'))
@cherrypy.expose
def request(self, username, password):
print "Debug"
auth = SiteAuth()
print password
if not auth.isAuthorizedUser(username,password):
cherrypy.response.headers['Content-Type'] = 'application/json'
return simplejson.dumps(dict(response ="Invalid username and/or password"))
else:
print "Debug 3"
#return network.html here
class DevicePage(object):
@cherrypy.expose
def index(self):
return open(os.path.join(MEDIA_DIR, u'network.html'))
config = {'/media': {'tools.staticdir.on': True, 'tools.staticdir.dir': MEDIA_DIR, }}
root = LoginPage()
root.network = DevicePage()
# DEVELOPMENT ONLY: Forces the browser to startup, easier for development
def open_page():
webbrowser.open("http://127.0.0.1:8080/")
cherrypy.engine.subscribe('start', open_page)
cherrypy.tree.mount(root, '/', config = config)
cherrypy.engine.start()
Cualquier ayuda u orientación en esta materia sería muy apreciada
Saludos
Chris
Saludos por el consejo fue muy útil gracias. – Lipwig