4

我有一个 Python 脚本,可以打印并返回服务器文件夹中的所有图像文件。

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 调用它:

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

但是,它只是显示来自 filename.py 的代码,而不是获取“打印”或返回的数据。我在这里错过了什么吗?

编辑:顺便说一句,我正在使用 Google App Engine 来托管我的网站。

4

3 回答 3

2

您需要一些 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)

现在您需要启动服务器,每当您发送 GET 请求时,localhost:5000/images它都会返回您正在寻找的 JSON 响应。

于 2012-11-25T05:38:36.550 回答
1

您是否设置了 Python 以在您的服务器上运行?

于 2012-11-25T05:13:56.397 回答
0

只需将 Phyton 脚本放在 cgi 文件夹中

于 2020-03-09T13:19:31.050 回答