2010-06-05 14 views
2

J'ai une page html affichée à l'aide ...navigateur de lancement au sein CherryPy

cherrypy.quickstart(ShowHTML(htmlfile), config=configfile) 

Une fois que la page est chargée (par exemple. Initiée par. La commande « mypage.py python »), je voudrais automatiquement lancez le navigateur pour afficher la page (par exemple, via http://localhost/8000). Est-ce que je peux y parvenir (par exemple via un hook dans CherryPy), ou dois-je appeler le navigateur manuellement (par exemple en double-cliquant sur une icône)?

TIA Alan

Répondre

4

Vous pouvez brancher votre navigateur Web dans le démarrage du moteur/arrêt du cycle de vie:

def browse(): 
    webbrowser.open("http://127.0.0.1:8080") 
cherrypy.engine.subscribe('start', browse, priority=90) 

Ou, déballer QuickStart:

from cherrypy import config, engine, tree 

config.update(configfile) 
tree.mount(ShowHTML(htmlfile), '/', configfile) 
if hasattr(engine, "signal_handler"): 
    engine.signal_handler.subscribe() 
if hasattr(engine, "console_control_handler"): 
    engine.console_control_handler.subscribe() 

engine.start() 
webbrowser.open("http://127.0.0.1:8080")  
engine.block() 
+0

fumanchu - c'est génial! Votre solution cherrypy.engine.subscribe ... fonctionne un régal. Merci beaucoup. –