我想在web flask服务器上选择一个文件夹。我已经尝试用Python-flask-gui替换当前的py3语法(下面),tkinter可以很好地独立工作,但是当与烧瓶一起使用时试图打开一个窗口冻结。
我认为它可能与flask-desktop-application-file-chooser完全相同,但我不确定如何处理
“我建议将烧瓶视图功能启动/消息作为一个单独的线程,然后立即返回。(在对话框后面有你想要的任何背景。)另一个线程负责在一个窗口中执行对话框窗口。本机操作系统时尚,然后当用户选择一些东西并完成时,在内部发送另一个烧瓶请求,它将对所选文件执行任何操作。“
我的代码如下:
@app.route('/sync', methods=['GET', 'POST'])
def sync():
form = syncForm()
from werkzeug.utils import secure_filename
from tkinter import filedialog
import tkinter as tk
if request.form.get('file_chooser'):
#if 'choose folder' button is selected
import tkinter
from tkinter import filedialog
root = tkinter.Tk()
#(crashes here)
root.withdraw()
filepath = filedialog.askdirectory()
return render_template('sync.html', title='Sync', form=form)
stacktrace以
开头2017-09-28 01:57:54.365 Python[69815:1489923] -[NSView
_registerWithBackdropView] should not be called off of the main thread.
Invocation was here:(0 AppKit...
这与我在forms.py中创建类并从那里调用它时得到的堆栈跟踪相同。
感谢您的帮助!