Question

Je souhaite obtenir un simple Python " hello world " script de page Web pour exécuter sur Windows Vista / Apache mais frapper des murs différents. J'utilise WAMP. J'ai installé mod_python et le module s'affiche, mais je ne suis pas tout à fait sûr de ce que je suis censé faire, par exemple. http.conf (des choses comme AddHandler mod_python .py m'amènent soit dans un fichier introuvable, soit dans un fichier interdit, ou un module non trouvé avec des erreurs lors de l'accès à http: //localhost/myfolder/index.py ). Je peux faire en sorte que mod_python.publisher fonctionne, mais je "veux" " ceci / besoin de cela?

Quelqu'un peut-il aider?

Merci!

Était-ce utile?

La solution

Éloignez-vous de mod_python . Une idée souvent trompeuse est que mod_python est semblable à mod_php , mais en python. Ce n'est pas vrai. Wsgi est la norme permettant d'exécuter des applications Web python, définie par PEP 333 . Utilisez donc mod_wsgi à la place.

Vous pouvez également utiliser un framework Web doté d’un serveur. Le Cherrypy est particulièrement bon. Vous pourrez exécuter votre application de manière autonome et via mod_wsgi .

Un exemple d'application Hello World utilisant cherrypy:

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

application = HelloWorld()
if __name__ == '__main__':
    cherrypy.engine.start()
    cherrypy.engine.block()

Très facile hein? L'exécution de cette application directement sur python lancera un serveur Web. Si vous y configurez mod_wsgi , il fonctionnera dans apache.

Autres conseils

Vous n'avez pas besoin de mod_python pour exécuter du code Python sur le Web, vous pouvez utiliser une programmation CGI simple pour exécuter votre code Python, avec les instructions du lien suivant: http://www.imladris.com/Scripts/PythonForWindows.html

Cela devrait vous donner certaines des options de configuration dont vous avez besoin pour activer Python avec CGI, et une recherche sur Google devrait vous fournir de nombreuses autres informations sur la manière de les programmer.

Mod_python est utile si vous souhaitez un comportement légèrement plus convivial. interface, ou plus de contrôle sur la demande elle-même. Vous pouvez l’utiliser pour créer des filtres de requête et d’autres choses pour le serveur Apache. Grâce au gestionnaire d’éditeur, vous disposez d’un moyen plus simple de gérer les requêtes de pages Web via python.

Le gestionnaire d'éditeur fonctionne en mappant des URL vers des objets / fonctions Python. Cela signifie que vous pouvez définir une fonction nommée "foo" dans votre fichier python, ainsi que toute demande adressée à http: // localhost / foo appellerait cette fonction automatiquement. Plus d'informations ici: http: // www. modpython.org/live/current/doc-html/hand-pub-alg-trav.html

En ce qui concerne la configuration Apache pour que les choses fonctionnent, quelque chose comme cela devrait vous être utile

<Directory /var/www/html/python/>
  SetHandler mod_python
  PythonHandler mod_python.publisher
  PythonDebug On
</Directory>

Si vous avez / var / www / html / configuré en tant que racine de votre serveur Web et que vous avez un fichier nommé index.py dans le répertoire python /, la moindre demande à http: // localhost / python / foo doit appeler la fonction foo () dans index.py, ou échouer avec un 404 s'il n'existe pas.

  

AddHandler mod_python .py

Avez-vous défini le paramètre 'PythonHandler'?

Ces jours-ci, envisagez d'utiliser WSGI au lieu des interfaces natives mod-python pour des options de déploiement plus étendues. Soit via le support WSGI de mod-python, ou peut-être mieux, mod-wsgi. (CGI, par exemple, wsgiref fonctionnera également bien et est facile à installer sur un environnement de développement où vous ne vous souciez pas de ses performances en matière de déchets.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top