Je veux envoyer une chaîne à une fonction python que j'ai écrite et que vous voulez afficher la valeur de retour de cette fonction sur une page Web. Après quelques recherches initiales, WSGI sonne comme le chemin à parcourir. De préférence, je ne veux pas utiliser de cadres fantaisie. Je suis sûr que quelqu'un l'a déjà fait. Besoin d'être rassuré. Merci!Appel d'une fonction python sur le Web en utilisant AJAX?
3
A
Répondre
5
Vous pouvez essayer Flask, c'est un framework, mais minuscule et compatible 100% WSGI 1.0.
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
Note: Flask se trouve au-dessus de Werkzeug et peut-être besoin d'autres bibliothèques comme sqlalchemy pour le travail de DB ou jinja2 pour templating.
3
Vous pouvez utiliser cgi ...
#!/usr/bin/env python
import cgi
def myMethod(some_parameter):
// do stuff
return something
form = cgi.FieldStorage()
my_passed_in_param = form.getvalue("var_passed_in")
my_output = myMethod(my_passed_in_param)
print "Content-Type: text/html\n"
print my_output
Ceci est juste un exemple très simple. En outre, votre type de contenu peut être json ou texte brut ... je voulais juste montrer un exemple.
3
En plus de Flask, bottle est aussi simple et WSGI conforme:
from bottle import route, run
@route('/hello/:name')
def hello(name):
return 'Hello, %s' % name
run(host='localhost', port=8080)
# --> http://localhost:8080/hello/world
Il convient de noter que Flask est en fait une couche sur Werkzeug, ce qui est tout aussi minuscule, mais encore assez petit pour être facile à gérer. Cela signifie que vous avez environ 3-4 dépendances implicites, et pas seulement Flask. (En tant que quelqu'un avec des objectifs similaires à l'OP, je ne considère pas que ce soit un problème à distance, par rapport à des choses comme Turbogears2.) –
J'ai ajouté votre commentaire. Merci. – miku