Verwendung von Python als Serversprache aus PHP-Sicht

11

Ich kenne nur serverseitige Programmierung mit PHP. Für mich schreibe ich etwas in index.phpund rufe an http://localhost/index.phpund sehe die Ergebnisse des PHP-Skripts. Ich habe CakePHP verwendet und verstehe, dass Sie mit dem Umschreiben von URLs etwas anfangen können, aber meiner Meinung nach besteht diese Eins-zu-Eins-Beziehung zwischen URLs und PHP-Dateien auf dem Server.

Jetzt mache ich viel mit Python, aber nur Kommandozeilen. Ich möchte Python anstelle von PHP für mein nächstes Projekt verwenden. Bisher wurde mir gesagt mod_python, dass ich ein Framework wie Pylons oder Twisted oder sogar Django verwenden muss, um überhaupt eine Ausgabe zu erhalten. Andere haben gesagt, dass ich nur print()einen HTTP-Header haben muss und dann das Skript so ausgeben würde, als würde ich mit PHP verwendet.

Ich möchte etwas schreiben, das im Grunde nur eine Verzeichnisliste enthält und es hübsch macht, damit ich über einen mobilen Browser auf eine Reihe von PDF-Dateien zugreifen kann. Ich weiß, wie man das mit PHP macht, ich weiß, wie man ein Python-Skript erstellt, das den HTML-Code generiert. Ich weiß nur nicht, wie ich dieses Skript ausführen soll, wenn ich es öffne http://localhost/pdfcentral/.

Wie müsste ich meinen Server konfigurieren? Es läuft unter Ubuntu 10.04.

Martin Ueding
quelle
Es gibt viele Variationen, die Sie verwenden können. Am einfachsten ist es jedoch, das Python-Skript in Ihr cgi-binVerzeichnis zu stellen, damit der Server es ausführen kann, und optional eine PHP-Datei darauf umzuleiten, wenn Sie einen anderen Pfad verwenden möchten. In Bezug auf das Python-Skript selbst können Sie wie folgt vorgehen
ionFish

Antworten:

9

mod_pythonwird nicht mehr aktiv entwickelt. Während Apache sagt, dass das nicht bedeutet, dass das Projekt tot ist -

Derzeit befindet sich mod_python nicht in der aktiven Entwicklung. Dies bedeutet nicht, dass es "tot" ist, wie einige Leute behauptet haben. Dies bedeutet, dass der Code und das Projekt ausgereift genug sind, wenn nur sehr wenig für die Wartung erforderlich ist.

Es wird jedoch empfohlen , stattdessen mod_wsgi zu verwenden. Das ist, wenn Sie alles von Grund auf neu erstellen möchten. Was ich vorschlage, sollten Sie nicht tun, es sei denn, Sie verwenden dies als Lernübung.

Es wäre besser, ein Web-Framework zu verwenden, um das schwere Heben zu erledigen - Routing, Anfragen und dergleichen

Eine umfassende Liste von Python-Webframeworks finden Sie hier , aber hier sind einige, die beliebt sind -

  • Django - Es wird als Python-Äquivalent von Ruby on Rails angesehen und ist ziemlich robust, passt also nicht zu dem, was Sie brauchen.
  • Flasche - Es ist ein Mikroframework. Das heißt, es ist klein, steht Ihnen nicht im Weg und ist ideal für kleinere Projekte, bei denen nicht viele Batterien erforderlich sind.
  • Pyramide - Sie wird von derselben Gruppe von Menschen gebaut, die Pylone gebaut haben, was nicht mehr verstorben ist. Es liegt irgendwo zwischen Flask und Django - kann als Ersatz für beide verwendet werden.
  • Flasche - Dies ist ein weiteres Mikroframework und noch minimaler als Flask. Ist nur eine Datei und hat keine anderen Abhängigkeiten (wenn Sie die integrierte Vorlagen-Engine verwenden) als die Standardbibliothek, wäre also eine gute Lösung für das, was Sie wollen.
  • Web.py - Einmal betriebenes Reddit (das nach dem Erwerb mit neuen Tools neu geschrieben wurde).
  • webapp2 - Dies ist das Standardframework für die Google App Engine (obwohl Sie dort auch andere Frameworks verwenden können).

Von diesen würde ich Flask empfehlen, da ich es benutzt habe und keine Beschwerden habe. Es hat auch viele Erweiterungen, die das Leben viel einfacher machen würden, wenn Sie mehr Funktionen auf Ihrer Website wünschen.

Außerdem benötigen Sie eine Template-Engine, um Ihr HTML zusammenzustellen. Jinja2 wurde von denselben Leuten gebaut, die auch Flask herstellen, und ist ziemlich weit verbreitet. Aufgrund der phpWebentwicklung ist die Verwendung von Mako möglicherweise natürlicher, was ebenfalls sehr beliebt ist.

Hier ist eine umfassendere FAQ zur Python-Webentwicklung - Python-FAQ: Webdev .

Elssar
quelle
1
Ich habe ein kleines Flask-Projekt, das jetzt mit FastCGI und lighttpd auf einem Testcomputer ausgeführt wird. Es sollte auch auf dem Server ausgeführt werden. Vielen Dank!
Martin Ueding
1

Ich fand die Frage etwas verwirrend und wenn ich recht habe, gehe ich davon aus, dass Ihr Hauptziel darin besteht, Dateien mit hübschem Stil auf Ihr Mobiltelefon zu übertragen?

Wenn das stimmt, sollten Sie nicht so viele Schleifen durchlaufen müssen, um etwas einzurichten.

Mit Apache2 können Sie das Hauptverzeichnis der Dateilisten bearbeiten, sodass Sie es so ziemlich beliebig gestalten können.

Es sind auch viele fertige Hauptthemen online verfügbar. Suchen Sie einfach bei Google nach Themen für Apache2-Verzeichnislisten, sodass es auch nicht zu schwierig ist, darauf zu reagieren.

Hier finden Sie einige Informationen zum Ändern des Standard-Erscheinungsbilds von Apache

Und hier sind einige fertige Vorlagen zum Auschecken, es gibt noch viel mehr ...

Repos Style

Rekursor

Indizes

Simon Hayter
quelle
Dies scheint das anfängliche Problem ziemlich gut zu lösen. Ich dachte, ich könnte dies als erstes Projekt verwenden, um von PHP zu Python zu wechseln. Wenn das Python-Projekt zum Stillstand kommt, werde ich mir das ansehen. Vielen Dank!
Martin Ueding
Herzlich willkommen;)
Simon Hayter