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.
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 ).
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()
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.
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 .
Regardez le implémentation de référence WSGI . Vous l'avez déjà dans vos Python bibliothèques. C'est assez simple.
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.
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.
Si vous voulez dire "service Web" au sens SOAP/WSDL, vous voudrez peut-être regarder Générer un WSDL avec Python et SOAPpy
peut-être Twisted http://twistedmatrix.com/trac/