45 votes

Quel est l'équivalent Python de Tomcat?

Cette question probablement trahit une idée fausse, mais je suis curieux de savoir ce que le "Chat" du Python monde.

L'ensemble de mon expérience de la programmation web est en Java (ou Groovy) donc je pense que dans Java termes. Et quand je pense à faire une base de l'application web, je pense que de l'écriture de quelques servlets, la construction d'une GUERRE de fichier, et de le déployer dans Tomcat ou un autre conteneur de servlet.

En Python, supposons que j'ai écrit du code qui a été capable de répondre à des requêtes HTTP, que ferais-je avec lui? Comment aurais-je de le déployer?

Plus précisément: Quel est le plus couramment utilisé conteneur en Python? Et s'il y a un équivalent d'un fichier WAR, un emballage standard d'une application web dans un fichier qui fonctionne dans les différents conteneurs?

32voto

ThiefMaster Points 135805

Il existe différentes approches qui ont une chose en commun: Ils ont généralement de communiquer par le biais de WSGI avec leur "conteneur" (le serveur reçoit les requêtes HTTP avant d'aller à votre code Python).

Il existe différents types de conteneurs:

  • wsgiref - très simple de référence de mise en œuvre de ce qui est agréable au cours du développement
  • Apache avec mod_wsgi
  • la plupart des autres Serveurs web avec l'ajout d'un module WSGI soutien
  • beaucoup plus de

5voto

S.Lott Points 207588

quand je pense à faire une base de l'application web, je pense que de l'écriture de quelques servlets, la construction d'une GUERRE de fichier, et de le déployer dans Tomcat ou un autre conteneur de servlet.

C'est gentil, mais hors de propos. C'est juste un Java-ism, et ne s'applique pas très largement en dehors de Java.

En Python, supposons que j'ai écrit du code qui a été capable de répondre à des requêtes HTTP, que ferais-je avec lui? Comment aurais-je de le déployer?

Cela dépend.

Ce qui est le plus couramment utilisé conteneur en Python?

Il n'existe pas.

Et s'il y a un équivalent d'un fichier WAR, un emballage standard d'une application web dans un fichier qui fonctionne dans les différents conteneurs?

Il n'existe pas.


HTTP est un protocole pour la production d'une réponse à une demande. C'est tout. C'est vraiment une très petite chose.

Vous avez des scripts CGI qui peut répondre à une demande. Le Python cgi bibliothèque peuvent le faire. http://docs.python.org/library/cgi.html.

C'est relativement inefficace, parce que le CGI simple règle est de "déclencher un nouveau processus pour chaque demande." Il peut aussi être en sécurité si le script permet une élévation de privilèges ou mal programmé-out uploads.

Vous avez l' mod_wsgi - cadre pour se connecter à Apache de Python. Cela peut se comporter comme CGI, ou il peut avoir un dédié Python "démon" à la fin d'un canal nommé.

Le WSGI norme définit un format de requête et de réponse au traitement qui est très pratique et très extensible. La plupart des cadres -- d'une manière ou d'une autre, sont compatible WSGI.

Enfin, il y a de plus complet des cadres qui incluent des définitions de classe pour les demandes et les réponses, l'analyse d'URL, d'Authentification, d'Autorisation, etc., etc.

En voici une liste: http://wiki.python.org/moin/WebFrameworks

2voto

Kaibin Points 152

Peut-être que «uwsgi» vous aidera. Voici le lien: http://projects.unbit.it/uwsgi/

0voto

Anand Points 115

Il existe de nombreux serveurs Web disponibles pour Python. Certains des serveurs Web comme CherryPy ont été écrits en Python lui-même. La partie la plus cool de la réponse est que le serveur tomcat prend en charge les applications basées sur Python.

Pour plus de détails, consultez ce site: https://wiki.python.org/moin/WebServers

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X