Können Sie einen minimalistischen Python-Webserver empfehlen, den ich in meine Desktop-Anwendung einbetten kann?Eingebetteter Webserver in Python?
Antwort
Wie minimalistisch und zu welchem Zweck?
SimpleHTTPServer ist kostenlos als Teil der Standard-Python-Bibliotheken. Wenn Sie weitere Funktionen benötigen, schauen Sie in CherryPy oder (am oberen Ende) Twisted.
Siehe die WSGI reference Implementierung.
Wenn Sie viele gleichzeitige Sachen machen, könnten Sie Kamaelia 's HTTPServer betrachten.
+1 Kamaelia. Perfekt für diese Art von Dingen. –
Kamaelia ist großartig für gleichzeitige Sachen, aber wäre es nicht eine ziemlich große Bibliothek, die nur für einen minimalen Webserver benötigt wird? –
Es gibt eine erhebliche Menge an Zeug, die man ausschneiden könnte, wenn jemand so geneigt wäre.Die Idee wurde geschwommen, um mehrere "Verteilungen" von Kamaelia zu machen, es ist einfach noch nicht passiert. (Aber ja, ich stimme zu, dass dies eine umfangreiche Bibliothek sein kann, wie sie ist). –
Ich werde ein großer Fan der neu veröffentlichten circuits Bibliothek. Es ist ein Komponenten-/Event-Framework, das mit einem sehr schönen Satz von Paketen zum Erstellen von Webservern & Apps geliefert wird. Hier ist das einfache Web-Beispiel von der Website:
from circuits.lib.web import Server, Controller
class HelloWorld(Controller):
def index(self):
return "Hello World!"
server = Server(8000)
server += HelloWorld()
server.run()
Seine WSGI-Unterstützung ist nicht komplizierter als das, entweder. Gutes Zeug.
Ich habe festgestellt web.py ziemlich einfach zu bedienen: http://webpy.org/
Wenn Sie etwas aus der Standardbibliothek verwenden, möchte ich stark nicht mit Simple empfehlen würde, aber stattdessen wsgiref.simple_server
verwenden. SimpleHTTPServer ist umständlich und eine ziemlich unsinnige Art, eine Webanwendung zu implementieren, und während rohe WSGI nicht besonders einfach (aber sicher möglich) ist, haben Sie die Möglichkeit, jedes WSGI-basierte Framework darüber zu verwenden. Auch wenn Sie wsgiref verwenden, können Sie später zu einem Server wie CherryPy wechseln (beachten Sie, dass der Server in CherryPy separat vom Rest des Frameworks verwendet werden kann und Sie nur one file nur für den Server benötigen). Für eine "echte" Web-Anwendung hat CherryPy mehrere Vorteile gegenüber wsgiref, aber für eine lokal gehostete Anwendung ist es unwahrscheinlich, dass eine von ihnen eine Rolle spielt.
Wenn Sie eine Desktop-Anwendung erstellen, müssen Sie einen separaten Thread für entweder wsgiref oder CherryPy starten. Wenn das in Ordnung ist, wäre ein WSGI-basierter Server wahrscheinlich am einfachsten. Wenn Sie keinen separaten Thread für den Server starten möchten, müssen Sie höchstwahrscheinlich Twisted verwenden.
Wir werden CherryPy verwenden. Danke für die ausführliche Erklärung. –
- 1. eingebetteter Java Webserver verbirgt App-Schnittstelle
- 2. Eingebetteter Webserver - mögliche Probleme bei der Bereitstellung
- 3. eingebetteter Webserver zum Ausführen von PHP
- 4. Multithread-Webserver in Python
- 5. Python-Webserver
- 6. Python Script auf Webserver
- 7. Python 3 HTTPS Webserver
- 8. Wohin geht mein eingebetteter Python-Standard?
- 9. eingebetteter Webbrowser
- 10. Importieren von Numpy in eingebetteter Python-C++ - Anwendung
- 11. Eingebetteter Python-Code in einem Windows-Shell-Befehl
- 12. Ein guter Multithread-Python-Webserver?
- 13. Paste (Python) Webserver - Autoreload Problem
- 14. Reverse-Proxy-fähiger Python-Webserver?
- 15. Reverse-Proxy-fähiger Python-Webserver?
- 16. Zurückgeben eingebetteter Dokumente in Abfrage
- 17. Eingebetteter Java-Schlüsselwertspeicher
- 18. Speichern eingebetteter Dokumente Mongoid
- 19. XmlSerializer und eingebetteter WhiteSpace
- 20. Python verbinden mit 000webhost Webserver MySQL-Datenbank
- 21. Speichern von Python-Skripten auf einem Webserver
- 22. Python LDAP-Authentifizierung von Remote-Webserver
- 23. Einfacher Python-Webserver zum Speichern der Datei
- 24. Python Flask Webserver reagiert nicht mehr
- 25. Ausführen eines Python-Skripts im Tornado-Webserver
- 26. Transit-Layer in eingebetteter Google SearchControl-Karte
- 27. Volltextsuche mit eingebetteter DB in Delphi
- 28. Sichern/Verschlüsseln eingebetteter Datenbanken in Delphi
- 29. Verwirrender Rückgabewert von eingebetteter Anwendung
- 30. Preload JavaScript Ein eingebetteter Player
Danke für den CherryPy Link –
Ich empfehle CherryPy; Ich benutze es seit Jahren professionell und bin sehr glücklich damit. –
Schlagen Sie stark Twisted (oder Kamaelia) über die anderen. Es weiß, wie es mit UI-Hauptloops integriert werden kann, die in Desktop-Anwendungen verwendet werden. –