2010-07-20 13 views
3

我想发送一个字符串给我写的python函数,并且希望在网页上显示该函数的返回值。经过一些初步研究,WSGI听起来像是一条路。最好,我不想使用任何奇特的框架。我很确定有人曾经这样做过。需要一些保证。谢谢!使用AJAX在网页上调用python函数?

回答

5

你可以尝试Flask,它是一个框架,但是很小且100%符合WSGI 1.0标准。

from flask import Flask 
app = Flask(__name__) 

@app.route("/") 
def hello(): 
    return "Hello World!" 

if __name__ == "__main__": 
    app.run() 

注:瓶坐的Werkzeug顶部,可能需要其他的库,例如SQLAlchemy的为DB工作或进行的Jinja2模板。

+0

值得一提的是,瓶实际上是在WERKZEUG,这是不是很微小的一个层,虽然还是小到可以控制的。它的确意味着你有大约3-4个隐式依赖关系,而不仅仅是Flask。 (作为与OP相似目标的人,我认为这不是远程问题,与Turbogears2相比)。 – 2010-07-21 17:34:30

+0

我已添加您的评论。谢谢。 – miku 2010-07-21 17:38:17

3

您可以使用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 

这只是一个很简单的例子。此外,你的内容类型可能是json或纯文本......只是想展示一个例子。

+0

不完全,我想要一个独立的解决方案。不过谢谢。 – shoold 2010-07-20 22:45:55

+1

'cgi'在标准库中。这是独立的,你可以得到。 – 2010-07-20 22:46:53

+0

是否需要在机器上使用apache2等Web服务器? – shoold 2010-07-20 22:56:47

3

除了瓶,bottle也简单和WSGI兼容:

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