2010-07-20 41 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