J'ai une application écrite dans torsadée et je souhaite ajouter une interface Web pour contrôler et surveiller. J'aurai besoin de nombreuses pages dynamiques montrant l'état actuel et la configuration, j'ai donc espéré un cadre qui offre au moins une langue de modèles avec héritage et un routage de base. P>
Puisque j'utilise de toute façon torsadée, je voulais utiliser Alors, quelles sont mes options? p>
Merci pour vos réponses. P> twisthed.web code> - mais c'est une langue de modèles est trop basique et il semble que le seul cadre, Neuvouve est assez mort (c'est
Twisted.Web CODE> Cadre basé? LI>
3 Réponses :
Neuvow est le choix évident. Malheureusement, le matériel Divmod Web Server et em> le matériel de serveur de sauvegarde a échoué en même temps. Ils tentent de récupérer les données et de le publier sur LaunchPad, mais cela peut prendre un certain temps. P>
Vous pouvez également utiliser essentiellement tout module de modèle existant avec tordue.Web; Jinja2 vient à l'esprit. P>
Puisque Nevow est toujours en panne et que je ne voulais pas écrire un routage et un soutien pour une émission de modèles moi-même, j'ai fini par utiliser de la fiole. Il s'est avéré être assez facile:
# make a Flask app from flask import Flask, render_template, g app = Flask(__name__) @app.route("/") def index(): return render_template("index.html") # run in under twisted through wsgi from twisted.web.wsgi import WSGIResource from twisted.web.server import Site resource = WSGIResource(reactor, reactor.getThreadPool(), app) site = Site(resource) # bind it etc # ...
Pourriez-vous s'il vous plaît élaborer sur lier-le etc code> s'il vous plaît? Comme pour que nous aurions un exemple complet contenus, runnable ... pour ceux qui ne sont pas si bien versés dans Twisted :)
@exhuma réacteur.listentcp (80, site) liera l'application de la fiole au port 80
C'est deux ans plus tard maintenant. La fiole et tordu sont vivants et bien, et je compte faire quelque chose de similaire. Est-ce que cela finit par travailler pour vous ou avez-vous rencontré des problèmes?
Les allignestallbacks peuvent-ils être mélangés avec du ballon lors de l'exécution comme celle-ci?
Vous pouvez le lier directement dans le réacteur comme l'exemple ci-dessous:
static = Static.File("/path/folder") static.processors = {'.py': script.PythonScript, '.rpy': script.ResourceScript} static.indexNames = ['index.rpy', 'index.html', 'index.htm'] root = Root() root.putChild('static', static) reactor.listenTCP(5050, server.Site(root)) reactor.run()
@ Jean-Paul Calderone - Je suis sûr que Neuvow est gentil; Je suis impressionné par tous les projets Divmod. Mais avec Divmod.org, il est vraiment difficile pour un débutant de trouver une documentation.