2016-11-19 4 views
0

Ich bin ein wenig pikant. Ich arbeite an einem kleinen kleinen statischen Site-Generator, und ich komme an den Punkt, wo es nützlich wäre, einen Entwicklungsserver über mein Tool verfügbar zu haben. So würde Ich mag an:Implementieren eines LiveReloaded-Entwicklungswebservers in Python

  • Führen Sie einen lokalen Server
  • Update-Dateien, wenn es ein Update
  • automatisch den Browser aktualisieren, sobald die aktualisierte Datei
  • verarbeitet wurde

Aber ich bin nicht sicher, was der beste Weg wäre, um das zu tun. Ich habe mit dem Standard-Python-Webserver oder Twisted für den Server und Watchdog für die Aktualisierung der Dateien gesucht, aber ich bin mir noch nicht ganz sicher. Außerdem habe ich keine Ahnung, wie ich die Seite "auffrischen" soll. Ich habe den Selenium-Treiber gesehen, aber ich denke, das wäre etwas zuviel für das, was ich will, zumal es mehr (nicht Python) Abhängigkeiten benötigt. Ich habe auch über Websockets gelesen, aber ich bin mir nicht ganz sicher, wie ich sie in dieses Problem einpassen könnte.

Also, was denkst du wäre ein guter Weg, um so etwas zu gehen? Oder vielleicht gibt es bereits ein Werkzeug, das ich als Abhängigkeit zu meinem Projekt hinzufügen könnte ... So oder so, ich würde gerne Ihre Ideen hören.

+0

Für:

Browser Link

Das js Script könnte etwas Einfaches wie zu injizieren Aktualisieren des Browsers Ich würde vielleicht die gleiche Methode wie Microsoft für vs verwenden ... injizieren Sie eine JS-Datei in Ihre Webseite, die öffnen s ein Websocket an den Server und wartet auf den Befehl zum Neuladen ... –

+0

Könnten Sie mir einen Link zu etwas zu diesem Thema werfen? – tedm1106

Antwort

1

Zum Aktualisieren des Browsers würde ich Ihnen empfehlen, WebSockets auszuprobieren und dann eine JS-Datei am Ende Ihrer HTML-Seite zu injizieren. Eine websocket Implementierung könnte sein:

Simple Websocket Serverfor Python

Microsoft tut dies mit BrowserLink in VS:

<script type="text/javascript"> 
var socket = new Websocket(url to server); 
socket.onmessage = function(e){ 
if(e.data == "reload"){ 
location.reload(); 
} 
}; 
</script> 
Verwandte Themen