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

Flaskcherrypyなどの Web フレームワークのセットアップが必要です。Flask を使用することをお勧めします。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 に答える