wie die Anzeige .txt-Datei-Inhalt an den browser mit python
Haben wir eine test.py
, die angezeigt werden sollen, die eine .png
Datei und .txt
- Datei im gleichen browser. Unten ist mein code:
print "Content-type: image/png\n"
print file(r"/var/www/cgi-bin/testpie.png", "rb").read()
myurl = "file://var/www/html/test.txt"
webbrowser.open(myurl)
Aber ich bin immer nur .png
- Datei im browser. Also, wie kann ich die Anzeige im browser mit python?
- Es ist ungewöhnlich, direkt
file()
: es wird empfohlen, stattdessenopen()
ist die standard-Weg öffnen einer Datei. Darüber hinaus müssen Sie nicht verwenden Sie eine raw-string mit Ihr Weg, da Sie es nicht enthielt entkommen ( ` " ) Zeichen. - Dein code ist verwirrend, zwei Dinge.
webbrowser.open()
für das öffnen einer URL in einem web-browser auf dem gleichen Computer das Skript ausgeführt wird. Wenn Sie diese in einem CGI/WSGI-script, es hat keine Auswirkungen auf die web-browser, die eine Verbindung als client; es öffnet sich ein browser auf dem server.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Browser zeigen HTML-Dokumente. HTML-Dokumente können text enthalten, in einem
div
,span
,p
usw. tag, nur indem Sie den text innerhalb des Elements. Zum Beispiel<div>Hello!</div>
zeigt den textHello
. Aber Sie enthalten nicht die Bilder direkt, sondern Sie gehören links Bilder, wie diesrc
einerimg
tag. Zum Beispiel<img src="http://example.com/foo.png">
zeigt die foo.png-Bild.So, es gibt zwei Möglichkeiten, das zu tun, was Sie wollen.
Der einfache Weg ist, um zwei Ressourcen (mit separaten URLs): (1) das PNG-Bild, und (2) eine HTML-Seite mit einem link auf die PNG-Bild (und enthält den text direkt).
Zum Beispiel...
testpie_image.py:
testpie.py:
Nun, wenn jemand navigiert zu
http://example.com/cgi-bin/testpie.py
, dass löst dein zweites script, so erhalten Sie eine HTML-Seite wie diese:Ihrem browser wird dann Folgen Sie diesem link, um
http://example.com/cgi-bin/testpie-image.py
, das löst dein erstes script, so erhalten Sie die PNG-Bild.Den härteren Weg ist, um eine Besondere Art von URL-Schema genannt
Daten:
, ermöglicht Ihnen das einbetten von Daten in-line, als wäre es ein link auf eine separate Ressource. Sie haben zu tun, ein bisschen mehr Arbeit einbetten kann, aber es bedeutet, dass Sie brauchen nur eine URL statt zwei:Nun, wenn jemand navigiert zu
http://example.com/cgi-bin/testpie.py
erhalten Sie eine HTML-Seite wie diese:OK, lassen Sie mich erklären.
Nehme ich an, dass Sie bei der Verwendung einer traditionellen form einzureichen, verbunden mit einem traditionellen CGI-server. Wenn Sie auf die senden-Schaltfläche in Ihrem web-browser sendet einen request an das CGI-Skript, das baut das HTML-Dokument. Das Dokument enthält die text-Datei, und enthält auch ein Bild verknüpft, auf eine zweite CGI-Skript. Ihr web-browser lädt automatisch das Bild durch die folgenden link, um die zweite CGI, die generiert und liefert die PNG-Datei, welche angezeigt bekommt. Also, sehen Sie das Bild und den text in einem browser-Seite.
Eine Letzte Sache: Sie wahrscheinlich nicht wollen, legen Sie die text-Datei in die /var/www Hierarchie, und wenn Sie ein
data:
URL, die Sie wahrscheinlich nicht wollen, um das Bild-Datei gibt.Wenn Sie möchten, die Anzeige von zwei Arten von Daten, dann müssen Sie entweder:
data:
Schema).Sie nicht mehr zurück können, ein text-Dokument, und ein PNG-Bild in der gleichen Zeit.
Könnte man erstellen Sie eine einfache HTML-Datei mit Python, die sowohl den Inhalt der text und das Bild und öffnen Sie diese Datei in den browser.