web-dev-qa-db-fra.com

Meilleure façon de créer un service Web simple python

J'utilise python depuis des années, mais j'ai peu d'expérience avec la programmation Web python. J'aimerais créer un service Web très simple qui expose Certaines fonctionnalités d'un script python existant destiné à être utilisé dans mon entreprise. Les résultats seront probablement renvoyés au format csv. Quel est le moyen le plus rapide de mettre en place quelque chose? Si cela affecte votre suggestion, je serai probablement ajouter plus de fonctionnalités à cela, sur la route.

135
Jeremy Cantrell

Regardez werkzeug . Werkzeug a commencé comme une simple collection de divers utilitaires pour les applications WSGI et est devenu l’un des modules utilitaires WSGI les plus avancés. Il comprend un débogueur puissant, des objets de requête et de réponse complets, des utilitaires HTTP pour gérer les balises d’entités, des en-têtes de contrôle du cache, des dates HTTP, la gestion des cookies, le téléchargement de fichiers, un puissant système de routage d’URL et de nombreux modules d’addon fournis par la communauté.

Il comprend de nombreux outils utiles pour travailler avec http et présente l’avantage de pouvoir être utilisé avec wsgi dans différents environnements (cgi, fcgi, Apache/mod_wsgi ou avec un simple serveur python pour le débogage ).

55
Peter Hoffmann

web.py est probablement le framework web le plus simple qui existe. "Bare" CGI est plus simple, mais vous êtes complètement autonome quand il s'agit de créer un service qui fait réellement quelque chose.

"Bonjour le monde!" selon web.py n’est pas beaucoup plus long qu’une version nue de CGI, mais il ajoute le mappage des URL, la distinction des commandes HTTP et l’analyse des paramètres de requête gratuitement :

import web

urls = (
    '/(.*)', 'hello'
)
app = web.application(urls, globals())

class hello:        
    def GET(self, name):
        if not name: 
            name = 'world'
        return 'Hello, ' + name + '!'

if __== "__main__":
    app.run()
26
Tim Lesher

Le moyen le plus simple d'obtenir un script en ligne Python est d'utiliser CGI:

#!/usr/bin/python

print "Content-type: text/html"
print

print "<p>Hello world.</p>"

Placez ce code dans un script qui réside dans le répertoire CGI de votre serveur Web, rendez-le exécutable et exécutez-le. Le module cgi comporte un certain nombre d'utilitaires utiles lorsque vous devez accepter les paramètres de l'utilisateur.

15
Greg Hewgill

Les CGI brutes sont une sorte de douleur, Django est une sorte de poids lourd. Il existe un certain nombre de cadres plus simples et plus légers, par exemple CherryPy . Cela vaut la peine de chercher un peu .

12
Charlie Martin

Regardez le implémentation de référence WSGI . Vous l'avez déjà dans vos Python bibliothèques. C'est assez simple.

9
S.Lott

Si vous entendez par "service Web" quelque chose auquel accéder par d'autres programmes SimpleXMLRPCServer pourrait vous convenir. Il est inclus avec chaque Python installé depuis la version 2.2.

Pour les choses simples accessibles à l'homme, j'utilise habituellement Pythons SimpleHTTPServer , qui est également fourni avec chaque installation. Évidemment, vous pouvez également accéder à SimpleHTTPServer par les programmes clients.

4
max

La vie est simple si vous avez un bon framework web. Les services Web dans Django sont faciles. Définissez votre modèle, écrivez des fonctions d'affichage qui renvoient vos documents CSV. Ignorer les modèles.

2
S.Lott

Si vous voulez dire "service Web" au sens SOAP/WSDL, vous voudrez peut-être regarder Générer un WSDL avec Python et SOAPpy

2
che
1
mabbit