5 Stimmen

Zwei Wege zur Erstellung von Python-basierten Webseiten?

Ich wollte Python ausprobieren, um Webseiten zu erstellen, anstatt php zu verwenden. Ich bin jedoch darauf gestoßen, dass man entweder mod_python oder mod_wsgi auf dem Apache installieren muss, damit er mit Python zusammenarbeitet. Wenn man nun reinen, ich bin mir nicht sicher, ob man sagen sollte, reinen, Python-Code verwendet, ohne irgendwelche Web-Frameworks wie Django zu benutzen. Ich habe herausgefunden, dass die Erstellung einer einfachen Seite in mod_python anders aussieht als in mod_wsgi.

Je mehr ich mich mit Python beschäftigte, desto schwieriger schien es, Webseiten zu erstellen, wenn man es mit PHP vergleicht. Gibt es einen guten Ausgangspunkt, um die Webentwicklung mit Python zu lernen?

Entschuldigen Sie, wenn meine Frage unscharf ist. Ich möchte einfach eine Anleitung, um mit Python Webentwicklung zu beginnen

3voto

Paul McMillan Punkte 19166

Ja, eine Webseite mit Python zu erstellen, ohne ein Web-Framework zu verwenden, ist schwieriger als mit php. Das ist so gewollt, denn es gibt Ihnen viel mehr Kontrolle darüber, wie Ihre Seite mit dem Server interagiert, was Ihnen unter anderem erlaubt, gut skalierbare Seiten zu erstellen. WSGI ist der moderne Weg, um mit einem Server zu interagieren, aber wie Sie festgestellt haben, beinhaltet es viele der Feinheiten, die PHP vor dem Benutzer verbirgt.

Wenn Sie auf der Suche nach einer php-ähnlichen Erfahrung für Python sind, sollten Sie sich web.py o Flachmann . Sie sind ziemlich minimalistisch, soweit Frameworks gehen, und kümmern sich um die Interaktion mit dem Server, aber sonst bleiben aus Ihrem Weg.

Dennoch sollten Sie Django oder ein anderes ähnliches Framework in Betracht ziehen - sie bieten einige wirklich großartige Vorteile, die Ihnen helfen, ansonsten mühsam komplexe Websites schnell zum Laufen zu bringen. Sie lösen ein etwas anderes Problem und bieten andere Lösungen als die üblichen PHP-Frameworks, daher sollten Sie sie auch dann in Betracht ziehen, wenn Sie Frameworks in PHP nicht mögen.

Wenn Sie die Dinge auf eine noch php-ähnlichere Weise erledigen wollen, können Sie CGI . Es ist definitiv keine empfohlene Lösung und lehrt Sie nicht die besten Praktiken für die Zukunft, aber es kann Ihnen den Einstieg erleichtern...

Aber denken Sie wirklich an einen Rahmen. Es ist, wie die meisten Entwicklung in Python für das Web getan wird, und Sie werden mehr nützliche Fähigkeiten zu lernen, wenn Sie mit einem entwickeln.

1voto

Brian Goldman Punkte 706

Mod_wsgi ist besser, denn es basiert auf der WSGI-Spezifikation, die die Schnittstelle zwischen Webanwendungen (oder Frameworks) und Webservern definiert. Eine WSGI-Anwendung ist im einfachsten Fall nichts anderes als eine Funktion, die einige HTTP-Header über einen Callback sendet und einen String als Antwort auf Informationen über eine HTTP-Anfrage zurückgibt. Und da WSGI von vielen Webservern implementiert wird, sind Sie nicht an den Apache gebunden.

Am nächsten kommen Sie der rein rahmenlosen Webentwicklung in Python, wenn Sie die WSGI-Anwendung direkt schreiben. Das wird Ihnen wirklich helfen, die Dinge zu sehen, die ein Framework wie Django verdeckt.

Zur Erleichterung der Arbeit können Sie Folgendes verwenden Werkzeug die eine Hilfsbibliothek für WSGI ist. Sie hat viele Komponenten, die einem Framework ähneln, aber Sie können wählen, welche Sie wollen und welche nicht. Zum Beispiel hat es ein wirklich ordentliches System für das Parsen und Versenden von URLs. Werkzeug hat auch einen einfachen Kommandozeilen-WSGI-Server, der für die Entwicklung wahrscheinlich besser geeignet ist als Apache.

1voto

Wilduck Punkte 13368

Ich antworte Ihnen mit einigen Ratschlägen, da ich mich vor einigen Monaten in einer ähnlichen Situation wie Sie befand.

Sie verwenden also Apache zum Hosten Ihrer Website. Das ist gut. Damit Python gut mit Apache zusammenspielt, werden Sie mod_wsgi verwenden wollen, und zwar aus den Gründen, die andere bereits genannt haben: Die Trennung von Belangen macht es besser als cgi und mod_python wird nicht mehr unterstützt.

Ihr Eindruck, dass der Verzicht auf ein Framework Sie näher an die Programmierung in "reinem" Python heranbringt, ist jedoch ein wenig daneben. Ich war der gleichen Meinung und habe sowohl mit Django als auch nur mit mod_wsgi experimentiert. Lassen Sie mich Ihnen mitteilen, was ich herausgefunden habe.

Mod_wsgi ist eine Implementierung des WSGI-Standards, der in PEP 333 . Die Unterscheidung zwischen der Implementierung und dem Standard ist wichtig. Erstens, weil sie bedeutet, dass WSGI-konforme Anwendungen über Implementierungen hinweg funktionieren. Noch wichtiger ist jedoch, dass sie etwas Wichtiges darüber aussagt, was WSGI leisten soll. WSGI ist nämlich als Standard für das Schreiben von Frameworks gedacht. Aus dem PEP:

die Einfachheit der Implementierung für den Autor eines Frameworks ist nicht dasselbe wie die Benutzerfreundlichkeit für den Autor einer Webanwendung

und

Das Ziel von WSGI ist es, die einfache Verbindung von bestehenden Servern und Anwendungen oder Frameworks zu erleichtern, und nicht, ein neues Web-Framework zu schaffen.

Ich sage nicht, dass Sie nicht etwas mit wsgi machen sollten, aber Sie sollten erwarten, dass Sie eher ein Framework als eine Anwendung schreiben. Wenn Sie daran interessiert sind, ein einfaches Framework zu schreiben diese Anleitung ist der Ort, an dem ich angefangen habe.

Wenn Sie jedoch nur eine Website erstellen möchten, sollten Sie sich eines der von anderen vorgeschlagenen Frameworks ansehen. Sie werden immer noch Python-Code schreiben, aber die Autoren haben hart daran gearbeitet, den Code, den Sie schreiben, näher an die Erstellung von Websites als an die Erstellung von Frameworks zu bringen. Ich persönlich habe Django verwendet, und sobald es einmal in Betrieb war, war es ziemlich einfach, interessante Anwendungen zu erstellen. Außerdem ist die Dokumentation sehr gut, und es gibt ein gutes Tutorial. aquí . Davon abgesehen ist Django sehr umfangreich, und wenn Sie etwas Minimalistisches suchen, habe ich viel Gutes über Flask gehört, aber es gibt auch viele andere Optionen.

0voto

Greg Hewgill Punkte 882617

Sie können gewöhnliche CGI was wirklich einfach ist. Erstellen Sie ein Python-Programm, das etwa so aussieht:

#!/usr/bin/env python

import sys

sys.stdout.write("Content-type: text/html\r\n\r\n")

print("Hello <em>world</em>!")

Machen Sie diese Datei ausführbar ( chmod +x ) und legen Sie sie in einem Verzeichnis ab, das Sie für CGI-Dateien auf Ihrem Webserver konfiguriert haben.

Sie finden auch die Standard-Python cgi Modul sehr hilfreich.

0voto

Gnu Engineer Punkte 1475

Wenn Ihr Ziel darin besteht, Ihr Python-Programm webfreundlich zu gestalten, lautet die Antwort Cherrypy . Es ist ein sehr flexibles und einfaches Framework, das Ihre Python-Objekte im Web ausgesetzt ermöglicht. Probieren Sie es aus und es hat einen schönen Webserver eingebaut, dass Sie nicht apache/mod_wsgi etc. benötigen,

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X