异步处理程序被 Easygui 和 Flask 的错误线程删除

问题描述 投票:0回答:1

我的 Flask/Python 程序遇到以下问题。代码片段如下:

import flask as fk
import math
import easygui as gui

    
@app.route('/')
def index():
    return fk.render_template('template.html')


@app.route('/results', methods=['POST', 'GET'])
def result_calc():

    if fk.request.form['price_gas'] != '':
        try:
            if not math.isnan(float(fk.request.form['price_gas'])):
                gas_price = float(fk.request.form['price_gas'])
            else:
                raise ValueError
        except ValueError:
            gas_price = float(gui.enterbox("Please enter a valid input!", "Error..."))
    else:
        gas_price = 0

    return fk.render_template('results.html', price_tag=gas_price)

如果相应 HTML 表单中“price_gas”输入字段中的输入是有效数字,则其行为将按照我的要求进行。如果该字段为空,也是如此。

但是,如果我没有可以转换为浮点数的字符串,例如“0..15”而不是“0.15”,它仅在程序第一次运行时有效。然后我得到输入提示并可以插入一个新字符串,例如“0.15”。然后程序的其余部分运行良好,并且程序的结果显示在页面“results.html”上。当我从结果页面导航回输入网站上的 HTML 输入表单并重新运行该程序时,我得到了

Tcl_AsyncDelete: async handler deleted by the wrong thread

在我看来,一旦调用输入字段,它就会创建一些在后台运行的东西,在第二轮中会阻止代码的正确执行。

预先感谢您了解如何解决此问题!

python flask tkinter easygui
1个回答
0
投票

遇到类似的事情。你找到解决办法了吗?

© www.soinside.com 2019 - 2024. All rights reserved.