Web-Schnittstelle für eine verdrehte Anwendung

Ich habe eine Anwendung in Twisted geschrieben und ich möchte ein Web-Interface zu steuern und zu überwachen. Ich brauche viele dynamische Seiten, die den aktuellen Status und die Konfiguration zeigen, also habe ich auf ein Framework gehofft, das mindestens eine Templating-Sprache mit Vererbung und einigen grundlegenden Routing bietet.

Da bin ich mit Twisted sowieso wollte ich twisted.web – aber es ist Template Sprache ist zu twisted.web und es scheint, dass das einzige Framework, Nevow ist ziemlich tot (es ist auf Launchpad aber die Homepage und Wiki sind unten und ich kann nicht finden Alle Unterlagen).

Also, was sind meine Optionen?

  • Gibt es noch andere twisted.web basierte Framework?
  • Gibt es andere Rahmenbedingungen, die mit dem gedrehten Reaktor arbeiten?
  • Soll ich nur ein Web-Framework (ich denke Web.py oder Flasche) und führen Sie es in einem Thread?

Danke für eure Antworten.

3 Solutions collect form web for “Web-Schnittstelle für eine verdrehte Anwendung”

Da Nevow immer noch unten ist und ich kein Routing und Support für eine Templat-lib selbst schreiben wollte, bin ich mit Flask gelandet. Es stellte sich als ganz einfach heraus:

 # 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 # ... 

Es funktioniert bis jetzt einwandfrei.

Sie können es direkt wie möglich in den Reaktor einbinden:

 reactor.listenTCP(5050, site) reactor.run() 

Wenn Sie Kinder zu einem WSGI-Root hinzufügen möchten, besuchen Sie diesen Link für weitere Details.

Hier ist ein Beispiel, wie man WSGI Resource mit einem statischen Kind kombiniert.

 from twisted.internet import reactor from twisted.web import static as Static, server, twcgi, script, vhost from twisted.web.resource import Resource from twisted.web.wsgi import WSGIResource from flask import Flask, g, request class Root( Resource ): """Root resource that combines the two sites/entry points""" WSGI = WSGIResource(reactor, reactor.getThreadPool(), app) def getChild( self, child, request ): # request.isLeaf = True request.prepath.pop() request.postpath.insert(0,child) return self.WSGI def render( self, request ): """Delegate to the WSGI resource""" return self.WSGI.render( request ) def main(): 
 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() 

Nevow ist die offensichtliche Wahl. Leider haben die Divmod-Webserver-Hardware und die Backup-Server-Hardware zur gleichen Zeit gescheitert. Sie versuchen, die Daten wiederherzustellen und es auf Launchpad zu veröffentlichen, aber es kann eine Weile dauern.

Sie könnten auch grundsätzlich jedes vorhandene Schablonenmodul mit twisted.web verwenden; Jinja2 kommt in den Sinn.

  • Intelligenteste Weg, um riesige Mengen an Daten zu speichern
  • Scrapy und Xpath, um Daten aus Javascript-Code zu extrahieren
  • Web-Scraping mit Python
  • So erhalten Sie Währungsraten von dieser Website Converter Widget Python
  • Aufzeichnung aller Klicks und Interaktionen auf meiner Website
  • Web.py: Wie bekomme ich POST-Parameter und GET-Parameter?
  • Alternativen zu Selenium / Webdriver zum Ausfüllen von Feldern beim kratzfädeln mit Python?
  • Extrahieren von aussagekräftigem Text aus Webseiten
  • Python Anfrage api ist nicht Abrufen von Daten in Tafelkörper
  • AttributeError: 'Response' Objekt hat kein Attribut 'body_as_unicode' scrapy für python
  • Wie bekomme ich den folgenden Formular in Python
  • Python ist die beste Programmiersprache der Welt.