Python: so zeigen Ergebnisse auf einer web-Seite?
Wahrscheinlich ist es eine dumme Frage für diejenigen, die die Antwort kennt, aber ich bin ein Anfänger, und hier geht es:
Ich habe ein Python script, welches ich ausführen über die Befehlszeile mit einigen parameter, und druckt mir einige Ergebnisse. Lassen Sie uns sagen, die Ergebnisse sind einige HTML-code.
Habe ich nie getan, alle Python-Programmierung für das web, und konnte nicht es herausfinden... ich muss eine Seite (OK, ich weiß, wie man Dateien auf einen server hochladen, Apache läuft, Python auf dem server installiert ist...) mit einem Eingabefeld, akzeptieren wird, die parameter und die Schaltfläche "Senden", und ich brauche Sie, um "drucken" werden die Ergebnisse auf einer web-Seite, nachdem der Benutzer übermittelt, in der richtigen parameter, oder zeigen Sie die Ausgabe in eine command-line-situation sind gedruckt.
Ich gelesen habe, Dive Into Python ' s Kapitel über "HTML-Bearbeitung" und "HTTP-Web-Services", aber Sie beschreiben nicht das, was ich Suche.
Wenn die Antwort ist nicht kurz, wäre ich sehr dankbar, links, um die mehr relevante Sachen zu Lesen, oder vielleicht die wichtigsten Worte, um google für Sie.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Klingt wie Sie brauchen nur zu aktivieren CGI auf apache, die ziemlich viel leiten Ihre Ausgabe an den webserver ausgegeben.
Python hat CGI-Bibliothek Sie können einen Blick an ihm nehmen.
Hier ist ein essay von Guido ( ein bisschen altmodisch )
Und ein interaktive Unterweisung, dass sieht vielversprechend aus.
p.s.
Vielleicht können Sie es auch sehen wollen, Google bietet für dieses Google app engine ( es kann nicht sein, was Sie wollen, obwohl )
Für eine so einfache Aufgabe, werden Sie wahrscheinlich brauchen nicht mehr als CGI. Zum Glück Python hat eine eingebaute
cgi
Modul, das sollten die tun, was Sie wollen.Oder man konnte sich in einige der minimal-web-frameworks, wie web.py.
Dessen web-server? Wenn es ein web-server von einem web-hosting-Unternehmen oder jemand anderes, und Sie haben keine Kontrolle über Sie, die Sie benötigen, zu prüfen, in welcher Weise Sie Unterstützung für die Verwendung von Python für das schreiben von web-Anwendungen. Es ist nicht genug zu wissen nur, dass Sie Python zur Verfügung.
Als von anderen darauf hingewiesen wird, ist wahrscheinlich, dass zumindest CGI-Skripte, die die Verwendung von Python werden unterstützt. CGI ist jedoch nicht wirklich praktisch für die Ausführung von großen Python-web-frameworks wie Django.
Es ist jedoch möglich, dass der web-server könnte auch die Unterstützung von FASTCGI. Wenn das der Fall ist wird es möglich, die Verwendung solcher größeren Python-web-frameworks wie FASTCGI verwendet, persistente Prozesse, wo als CGI erstellt einen Prozess für jede Anfrage, in denen der overhead der großen Python-web-frameworks im Allgemeinen macht der Einsatz von CGI unpraktisch, als ein Ergebnis.
Wenn der Apache-server gesteuert wird, die von Dritten mit einem eigenständigen Python-web-server wie wsgiref und die zu es von Apache wird nicht machbar sein, entweder, wie Sie nicht setup-Apache, es zu tun.
Also, finden Sie heraus, wie die Verwendung von Python für web-Anwendungen unterstützt, und arbeiten Sie heraus, ob Sie nur Benutzer des Apache-Instanz, oder ob Sie ein gewisses Maß an Kontrolle verändert die globalen Konfigurationsdateien und ihn neu zu starten. Dies wird diktieren, was Sie tun können, und verwenden.
Sorry das zu sagen, aber HTTP-web-services sind, was Sie suchen. Denken Sie an es auf diese Weise - Sie legen ein Formular auf einer Webseite, und einen submit-button. Das geht mit einem web-service akzeptiert die Anfrage und er kaut auf, dass die Anfrage aus und liefert eine Antwort - das ist eine Seite von html. Sie müssen sich nie wirklich speichern html, es ist immer dynamisch generiert, aber es ist eine gültige html-Seite dennoch.
Anschauen django http://www.djangoproject.com/ für eine hohe Qualität von python-basierte web-service-toolkit.
Den ersten Schritt zum Verständnis der Anfrage - /Antwort-idiom ist, zu denken, die Anfrage als eine speziell formatierte (definiert durch CGI - das heißt, es ist ein GET-oder POST-HTML-action) Kommandozeilen-Parameter, und die Antwort als speziell formatierte Ausgabe (HTML), die gesendet wird, nicht auf die Standardausgabe, sondern über "den Draht" zu einigen browser. Senden Sie die Anfrage erreicht, die sich über den Draht und führt das Skript mit einigen Parametern, und Sie erhalten wieder die Ausgabe - formatierte HTML-Seite.
Ich Stimme völlig mit Matt -- Django ist, was Sie wollen. Django bietet eine vollständige Lösung, und wirklich wunderbare Dokumentation, die Ihnen helfen zu bekommen, was geht. Wenn Ihre Anwendung wächst und wird mehr kompliziert, Django kann sich noch arbeiten; Django arbeitet auch für sehr große und sehr komplizierte web-sites.
Werfen Sie einen Blick auf das gratis-Buch, Die Django-Buch.
Ein weiteres plus mit Django: wenn Sie Ihre web-app in Django, können Sie die Portierung auf die Google App Engine.
Habe ich nicht gelesen DIVE INTO PYTHON, also vielleicht das, was ich sage, ist überflüssig. Wie Daniel sagte, CGI kann für Sie arbeiten. In diesen Tagen wäre dies nur der Fall, für einfache Sachen mit einem relativ geringen Anzahl der Treffer. Die Python-CGI-Modul dokumentiert ist hier. Ich habe immer verwendet das Modul für die form-Verarbeitung und einfach getan Drucke für die Ausgabe. So gut wie ich konnte herausfinden, das ist der übliche Weg, Dinge zu tun, aber ich habe nicht getan, eine Menge von CGI mit Python.
Du nicht sagst, was du tust, so werde ich sagen, was vielleicht auf der Hand: sicherstellen, dass man dem server mitteilt, dass Sie ausgeben eine web-Seite mit Ihrem ersten Ausgang wird der content-type gefolgt von einer Leerzeile. In der Regel erfolgt dies mit:
(Für Python 2, 3 werden Sie brauchen, um Ihre Drucke in Funktionsaufrufe.) Nach dieser, Sie drucken Ihre html, header, body usw. tags und den eigentlichen Inhalt.
Einen aktuellen Methode zum erstellen von einfachen (one-of )
Python
web-Seite server ist diewsgiref
- Modul.Sehen Sie einige SO qusetions (https://stackoverflow.com/search?q=%5Bpython%5D+wsgiref) für einige code-Beispiele und weitere Anregungen.
Den
wsgiref
Beispiel ist ein guter Ort, um zu starten:Ich glaube Django ist übertrieben. Wenn Sie lernen wollen über diese Dinge, starten aus etwas ganz simplen wie diese:
http://www.islascruz.org/html/index.php/blog/show/Python:-Simple-HTTP-Server-on-python..html
Können Sie Ihren code, wo die do_GET ist.