2012-11-25 82 views
1

我有一個Python腳本,用於打印並返回服務器中文件夾中的所有圖像文件。然而將數據從Python返回到Javascript

$.get("scripts/filename.py", function(data){ 
    alert(data); 
}); 

,而不是獲得「打印」或返回的數據,它只是顯示從filename.py代碼:

import os 
images = "" 
for dirname, dirnames, filenames in os.walk('..\directory'): 
    for filename in filenames: 
     images = images + os.path.join(dirname, filename) + "^" 
print(images) 
return images 

我使用JavaScript中調用此。我在這裏錯過了什麼嗎?

編輯: 順便說一下,我使用Google App Engine來託管我的網站。

+0

你在使用什麼框架?只是python不能幫你做什麼,你應該用一些框架來運行開發服務器,例如, Django框架,簡單而強大。 – doniyor

+0

@ doniyor我正在使用谷歌應用程序引擎。 –

回答

1
+0

關於這一點,我正在使用谷歌應用程序引擎來託管我的應用程序。現在,我啓動了Google App Engine啓動程序,因此我通過http:// localhost:8080/index.html訪問我的網頁。我不知道我是否仍然應該安裝python for windows? –

+0

當然,如果您正在運行開發服務器,您應該爲Windows安裝python ... – doniyor

+0

我沒有看到Google App Engine教程中關於設置開發服務器的任何指示信息。我會試試這個。謝謝! –

1

你需要有一些Web框架的設置像Flaskcherrypy。我建議使用Flask,這是最簡單的Web框架。

然後你需要有一些端點可以發送AJAX GET請求,然後你的Python腳本將返回一個JSON響應。你可以遍歷這個JSON響應來打印結果。

此代碼可能會制定出適合你:

import sys, os 
from flask import Flask, request, url_for, render_template 

@app.route('/images') 
def index(): 
    images = "" 
    for dirname, dirnames, filenames in os.walk('..\directory'): 
     for filename in filenames: 
      images = images + os.path.join(dirname, filename) + "^" 
    print(images) 
    # return a json encoded response 
    return Response(json.dumps(images, sort_keys=True, indent=4), mimetype='application/json') 

if __name__ == '__main__': 
    # Bind to PORT if defined, otherwise default to 5000. 
    port = int(os.environ.get('PORT', 5000)) 
    app.run(host='0.0.0.0', port=port) 

現在你需要啓動服務器,每當你在localhost:5000/images發送GET請求將返回你正在尋找的JSON響應。

相關問題