我想运行客户端文件对话框GUI,以便用户可以选择要使用python(example)处理的文件。从根本上来说,我的代码工作正常:
from flask import Flask, url_for, request
app = Flask(__name__)
@app.route('/data')
def gui_test():
import Tkinter, tkFileDialog
root = Tkinter.Tk()
root.withdraw()
filepath = tkFileDialog.askopenfilename()
with open(filepath,'rb') as tt:
lines = tt.readlines()
return 'You are reading ' + filepath + '<p>Top 10 lines for proof of concept<p>'+'<br>'.join(lines[0:10])
if __name__ == '__main__':
app.run()
一切正常,但GUI在运行此REST代码的计算机上打开,而不是在客户端的用户帐户中打开。
用户应该使用浏览器http://127.0.0.1:5000/data,然后应该看到文件对话框:
详细信息:Windows Server 2012 R2,Flask 0.10.1,Python 2.7
如果我采取了错误的做法,我会很感激其他方向的建议。这个想法可能存在一些缺陷,因为浏览器没有共享完整路径(javascript example)。
答案 0 :(得分:4)
您无法向浏览器发送GUI小部件,只能发送HTML,CSS和Javascript。请参阅烧瓶http://flask.pocoo.org/docs/0.10/patterns/fileuploads/
中的文件上传的官方文档答案 1 :(得分:1)
您不能在Web应用程序中使用tkinter来运行代码客户端。这根本不可能。