【问题标题】:python - how to disable cache in Flask? Getting 500 server error during second POST request sent to server while first request was 200 OKpython - 如何在 Flask 中禁用缓存?在发送到服务器的第二个 POST 请求期间出现 500 服务器错误,而第一个请求为 200 OK
【发布时间】:2018-11-21 05:12:28
【问题描述】:

我“认为”我有一些缓存问题。 我的网络服务正在通过 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.第一个请求成功通过并给出 200 OK 响应和工作站编号以及请求附带的部分保存在“存储库”占位符中。 2.但是下一个请求抛出500服务器错误

错误: ws_part 中的文件“API_ws_par.py”,第 23 行 如果 i['ws'] == received_data['ws']: 键错误:'ws'

3.有趣的事情是: 如果此时我重新启动我的 Web 服务并再次触发 POST 请求,那么这个新请求带来的数据将被覆盖,并且我将丢失以前保存的数据。 4.另外,随之而来的第二个 POST 请求也会抛出同样的 500 服务器错误

请指导这是否与缓存有关? 如果是,请告诉我该怎么做?

提前致谢。

【问题讨论】:

    标签: python web-services caching flask flask-restful


    【解决方案1】:

    这不是缓存问题,是函数逻辑的问题, 在第一次调用时,您可能没有到达生成异常的代码行, 问题出在第二次调用上,键名不是“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' 不会出现密钥错误。

    【讨论】:

    • 感谢@rnkl904 指出这一点。我已经相应地更改了我的代码: for i in repository: if i['ws_no'] == received_data['ws_no']: i['part_no'] = received_data['part_no'] updated = 'yes' 然后我重新启动了我的服务并再次触发请求。但在第二次 POST 期间,再次收到相同的错误:文件“API_ws_par.py”,第 24 行,在 ws_part if i['ws_no'] == received_data['ws_no']: KeyError: 'ws' -- 我的代码不再有 'ws' 变量了。这次是缓存问题吗?提前致谢
    猜你喜欢
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    相关资源
    最近更新 更多