python - 如何在 Flask 中禁用缓存?在发送到服务器的第二个 POST 请求期间出现 500 服务器错误,而第一个请求是 200 OK

python - how to disable cache in Flask? Getting 500 server error during second POST request sent to server while first request was 200 OK

我 'think' 我有一些缓存问题。 我的网络服务正在通过 POST 请求接收数据并将其保存到磁盘。

以下是我的代码:

@app.route('/ws_part' , methods=['POST'])
def ws_part():
    request_data = request.get_json()

    #placeholder for workstation number and part number 
    received_data ={'ws_no':request_data['workstation'],
                'part_no':request_data['part']}

    #Checking if workstation number is already available
    global updated
    updated = 'no'
    for i in repository:
        if i['ws'] == received_data['ws']:
            i['part'] = received_data['part']
            updated = 'yes'

    if(updated!='yes'):
        new_input = received_data
        repository.append(new_input)

    return jsonify({'repository': repository})

我面临的问题: 1.The 第一个请求成功通过并给出 200 OK 响应和工作站编号以及请求随附的部分保存在 'repository' 占位符中。 2.But 下一个请求抛出 500 服务器错误

错误: 文件 "API_ws_par.py",第 23 行,在 ws_part 中 如果我['ws'] == received_data['ws']: 键错误:'ws'

3.Funny 发生的事情是: 如果此时我重新启动我的网络服务并再次触发 POST 请求,这个新请求附带的数据将被覆盖,我将丢失之前保存的数据。 4.Also,随后的第二个 POST 请求抛出相同的 500 服务器错误

请问是不是缓存问题? 如果是,请告诉我该怎么做?

提前致谢。

这不是缓存的问题,是函数逻辑的问题, 在第一次调用时,您可能没有找到生成异常的代码行, 问题出在第二次调用上,键名不是 'ws',而是 'ws_no', 如果您更改这些行:

  for i in repository:
    if i['ws'] == received_data['ws_no']:
        i['part'] = received_data['part_no']
        updated = 'yes'

使用'ws_no','part_no'不会出现密钥错误。