Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python-如何禁用Flask中的缓存?当第一个请求为200 OK时,在向服务器发送第二个POST请求期间获取500服务器错误_Python_Web Services_Caching_Flask_Flask Restful - Fatal编程技术网

python-如何禁用Flask中的缓存?当第一个请求为200 OK时,在向服务器发送第二个POST请求期间获取500服务器错误

python-如何禁用Flask中的缓存?当第一个请求为200 OK时,在向服务器发送第二个POST请求期间获取500服务器错误,python,web-services,caching,flask,flask-restful,Python,Web Services,Caching,Flask,Flask Restful,我“认为”我有一些缓存问题。 我的Web服务通过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['wor

我“认为”我有一些缓存问题。 我的Web服务通过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个服务器错误

错误: 文件“API_ws_par.py”,第23行,ws_部分 如果i['ws']==接收到的_数据['ws']: KeyError:'ws'

3.有趣的是: 如果此时我重新启动web服务并再次触发POST请求,则此新请求附带的数据将被覆盖,并且我将丢失以前保存的数据。 4.此外,随后的第二个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”,您不会出现关键错误。

感谢@rnkl904指出这一点。我相应地更改了代码:对于存储库中的I:如果I['ws_no']==接收到的_数据['ws_no']:I['part_no']=接收到的_数据['part_no']更新='yes',那么我重新启动了服务并再次触发了请求。但是在第二篇文章中,再次出现相同的错误:文件“API_ws_par.py”,第24行,在ws_部分中,如果i['ws_no']==接收的_数据['ws_no']]:KeyError:'ws'--其中我的代码不再有'ws'变量。这次是缓存问题吗?提前谢谢