繁体   English   中英

我不知道如何用我的 Python 语句只显示一次错误消息

[英]I don't know how to only show error message once with my Python statement

我对 Python/Flask 还很陌生,我试图让代码块只在 UI 中显示一条错误消息 - (并根据发现的错误数量来阻止它重复)。 我已经看到有关此问题的其他问题的回答,大多数响应在打印语句后使用某种形式的中断...但是从我的尝试来看,这不适用于我的代码,因为我不只是打印错误- 错误消息被放入一个变量中,然后将在屏幕上显示给用户。

error_messages = []

designer_returned_an_error = isinstance(result, str)
if designer_returned_an_error:
    print("Designer returned an error, not running additional checks")
    return {"message": result}, 400

# checks for screens with length of 1 or 0 in the list of lists
list1 = result[0]
print(list1)

for screens in list1:
    print(len(screens))
    if len(screens) <= 1:
        error_message = 'Based on these parameters you do not have enough items per screen to create a design.'
        error_messages.append(error_message)

当前用户界面消息

也许使用一个在抛出错误时写入的文本文件,并在你的 if 语句中检查写入的文本是否在文本文件中,所以它只会在文件中没有任何内容时说存在错误。 像这样:

f = open('examplename.txt', 'r+')
fileInfo = f.read()
error_messages = []

designer_returned_an_error = isinstance(result, str)
if designer_returned_an_error and fileInfo=="":
    print("Designer returned an error, not running additional checks")
    return {"message": result}, 400
    f.write("error already thrown")

# checks for screens with length of 1 or 0 in the list of lists
list1 = result[0]
print(list1)

for screens in list1:
    print(len(screens))
    if len(screens) <= 1:
        error_message = 'Based on these parameters you do not have enough items per screen to create a design.'
        error_messages.append(error_message)

如果出现错误,您可以中断循环,因为这是一个阻塞错误,例如只需在错误条件内添加一个break ,您也可以通过代码定义错误并将消息设置在循环外:

error_messages = []

designer_returned_an_error = isinstance(result, str)
if designer_returned_an_error:
    print("Designer returned an error, not running additional checks")
    return {"message": result}, 400

# checks for screens with length of 1 or 0 in the list of lists
list1 = result[0]
print(list1)

for screens in list1:
    print(len(screens))
    if len(screens) <= 1:
        error_message = 'Based on these parameters you do not have enough items per screen to create a design.'
        error_messages.append(error_message)
        break

或者您可以执行以下操作:

error_messages = []
items_with_errors = {'screen':[]}

designer_returned_an_error = isinstance(result, str)
if designer_returned_an_error:
    print("Designer returned an error, not running additional checks")
    return {"message": result}, 400

# checks for screens with length of 1 or 0 in the list of lists
list1 = result[0]
print(list1)

for screens in list1:
    print(len(screens))
    if len(screens) <= 1:
        items_with_errors['screen'].append(screens)

if len(items_with_errors['screen']) > 0:
    error_messages.append(f'Based on these parameters you do not have enough items per screen to create a design. You must have at least {len(items_with_errors['screen'])} item(s) per screen')


暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM