web-dev-qa-db-fra.com

Comment utiliser Python en tant que langage serveur à partir de la perspective PHP

Je ne connais que la programmation côté serveur avec PHP. Pour moi, j'écris quelque chose dans index.php et appelle http://localhost/index.php pour voir les résultats du script PHP. J'utilise CakePHP et je comprends que vous pouvez faire quelque chose avec la réécriture d'URL, mais dans mon esprit, il existe une relation un à un entre les URL et les fichiers PHP sur le serveur.

Maintenant, je fais beaucoup avec Python, mais juste avec les utilitaires en ligne de commande. J'aimerais utiliser Python au lieu de PHP pour mon prochain projet. Jusqu'ici, on m'avait dit à propos de mod_python que je devais utiliser un cadre tel que Pylons ou Twisted ou même Django pour obtenir le moindre résultat. D'autres ont dit que je devais simplement print() un en-tête HTTP, puis le script serait généré comme si j'étais utilisé avec PHP.

J'aimerais écrire quelque chose qui, en gros, ne prend qu'une liste de répertoires et le rend joli, afin que je puisse accéder à un tas de fichiers PDF à partir d'un navigateur mobile. Je sais comment faire cela avec PHP, je sais comment créer un script Python qui générerait le code HTML. Je ne sais tout simplement pas comment exécuter ce script lorsque j'ouvre http://localhost/pdfcentral/.

Comment devrais-je configurer mon serveur? Il fonctionne sur Ubuntu 10.04.

9
Martin Ueding

mod_python n'est plus en cours de développement. Bien qu'Apache dit cela ne signifie pas que le projet est mort -

Actuellement, mod_python n'est pas en développement actif. Cela ne signifie pas qu'il est "mort" comme certains l'ont prétendu. Cela signifie que le code et le projet sont suffisamment matures lorsqu'il ne faut que très peu pour le maintenir.

Mais, il est suggéré qu'il faille utiliser mod_wsgi . C'est si vous voulez tout construire à partir de zéro. Ce que je suggère, vous ne devriez pas, sauf si vous utilisez ceci comme exercice d'apprentissage.

Il serait préférable d’utiliser un cadre Web pour faire le gros du travail - traitement de l’acheminement, des demandes, etc.

Une liste complète de Python web-frameworks est disponible ici , mais voici quelques-uns qui sont populaires -

  • Django - Il est considéré comme le Python équivalent de Ruby sur Rails, et il est assez robuste, alors il ne conviendrait pas pour ce dont vous avez besoin .
  • Flask - Il s’agit d’une microframework. C’est-à-dire qu’il est petit, qu’il ne vous gêne pas et qu’il est idéal pour les petits projets qui ne nécessitent pas beaucoup de piles.
  • Pyramid - Il est construit par le même groupe de personnes que celui qui a construit les pylônes, ce qui n’est pas perdu. Il se situe quelque part entre Flask et Django - peut être utilisé en remplacement de l'un ou de l'autre.
  • bouteille - Ceci est une autre microframework, et est encore plus minime que Flask. N’est qu’un fichier et n’a pas de dépendances (si vous utilisez le moteur de templates intégré) autres que la bibliothèque standard, ce qui en fait un choix idéal pour ce que vous voulez.
  • Web.py - Une fois alimenté Reddit (qui a été réécrit avec de nouveaux outils après avoir été acquis).
  • webapp2 - Il s'agit du cadre standard de Google App Engine (vous pouvez cependant utiliser d'autres cadres).

Parmi ceux-ci, je recommanderais Flask, car je l'ai utilisé et je n'ai aucune plainte à formuler. Il comporte également de nombreuses extensions qui rendraient la vie beaucoup plus facile si vous voulez plus de fonctionnalités sur votre site.

En outre, vous auriez besoin d'un moteur de modèle - pour assembler votre code HTML. Jinja2 , construit par les mêmes personnes que Flask, et est très largement utilisé. Mais venant de php développement web, vous pourriez trouver l’utilisation de Mako plus naturel, ce qui est également très populaire.

Voici une FAQ plus complète sur Python Développement Web - FAQ Python: Webdev .

7
elssar

J'ai trouvé la question un peu déroutante et si je ne me trompe pas, je suppose que votre objectif principal est de servir les fichiers sur votre téléphone portable en utilisant un joli style?

Si cela est vrai, vous ne devriez pas avoir à parcourir autant de boucles pour mettre en place quelque chose.

Apache2 vous permet d'éditer le répertoire principal des listes de fichiers afin que vous puissiez le styler à votre guise.

Il existe également de nombreux thèmes principaux disponibles en ligne. Il suffit de lancer une recherche dans Google pour Thème pour la liste des répertoires Apache2.

Voici quelques informations sur la modification de l'aspect par défaut d'Apache

Et voici quelques modèles prêts à l'emploi, il y en a beaucoup plus ...

Style Repos

Recurser

Indices

1
Simon Hayter