2010-10-08 29 views
2

Je veux écrire une simple application web python pour fournir un GUI à un programme de ligne de commande (pensez par exemple à hg serve). Il ne fonctionnerait que localement. Je ne veux pas qu'il y ait des dépendances externes pour un déploiement plus facile, donc python web programming en général ne s'appliquerait pas iciProgrammation Web Python avec la bibliothèque standard

Comment cela peut-il être fait avec un minimum de tracas? N'importe quel pointeur comment le faire facilement avec cgi ou wsgi, string.Template ou string.Formatter? Je préférerais une solution Python 2.6, mais même une version Python 3.x est OK. Je préférerais également utiliser quelques modèles html pour assembler manuellement le HTML ensemble.

MISE À JOUR: La solution idéale comprendrait des moyens

  • pour traiter une forme
  • pour télécharger/télécharger un fichier
  • à la sortie html
  • pour démarrer un serveur web
+0

"simple python application web »et« je ne veux pas qu'il y ait des dépendances externes »sont complètement incompatibles. En effet, leurs opposés diamétraux. Vous ne pouvez pas avoir les deux. Lequel est le plus important? Des dépendances simples ou non? Vous ne pouvez en choisir qu'un. –

+0

@ S.Lott - Comme Steven l'a souligné dans sa réponse, l'utilisation d'un micro-framework peut faciliter cette tâche tout en ajoutant seulement une petite dépendance (un seul fichier dans le cas de Bottle). Cette approche semble être un bon équilibre entre les deux «diamètres opposés». –

+0

@Adam Schmideg: L'ajout d'une dépendance enfreint clairement "Je ne veux pas qu'il y ait des dépendances externes". Ce n'est pas un "terrain d'entente". C'est une solution parfaitement logique et logique. C'est fortement recommandé. Mais ce n'est absolument pas un "terrain d'entente". Il viole absolument et complètement "Je ne veux pas qu'il y ait des dépendances externes". J'ai changé cette réponse. Cependant, la question elle-même est si mal écrite que la question empêche complètement ** toutes ** les réponses. –

Répondre

4

Le package wsgiref de la bibliothèque standard a un serveur simple pour servir les applications wsgi. Vous pouvez l'utiliser pour exécuter votre propre application wsgi sans cadre, une application wsgi minimale n'est pas terriblement difficile (voir l'exemple de hello world à la fin de la page de documentation de wsgiref)

Vous pourriez vouloir assouplir la norme bibliothèque "exigence un peu. Vous allez avoir des "dépendances" sur vos propres modules de toute façon, est-ce vraiment si mauvais d'utiliser quelque chose où quelqu'un d'autre a déjà fait le travail? Certains des soi-disant «microframeworks» ne devraient pas poser trop de problèmes pour le déploiement. Bottle par exemple, se présente comme un seul module de fichier et n'a pas de dépendances autres que stdlib (je n'ai pas encore utilisé Bottle, mais j'ai choisi celui-ci comme exemple en raison du fichier unique/pas de dépendances)

+0

+1 vous m'a fait reconsidérer mon exigence originale. Merci pour le pointeur de microframework. La bouteille semble intéressante. –

+0

Je peux certainement recommander Bottle. Je l'ai utilisé exactement pour le scénario décrit dans la question. –

0

Peut-être que twisted est le chemin à parcourir? Ou considérez-vous que cela soit trop une dépendance externe?

+0

Il y a des douzaines de frameworks web en python, je sais. Cette question est de ne pas utiliser l'un d'entre eux, y compris tordu. –