Django开发时视图模型调用其他函数无法得到正确的返回值。一直显示None

我利用Django开发,从前端传入两组数到decode_key视图模型中,在这个视图模型中调用算法函数
attack_drawing(data_file_path,trace_number)。但是得到的返回值一直是None。
这是我decode_key视图调用的代码:

def decode_key(request):
    if request.method == "POST":
        start_seq = int(request.POST.get("startSeq"))
        end_seq = int(request.POST.get("endSeq"))
        col_diff = end_seq - start_seq + 1
        print("执行1")
        #print(attack_drawing('ASCAD.h5', col_diff))
        print(attack_drawing('ASCAD.h5', 1000))
        print("执行2")
        #rank_txt_name, rank_pic_name = attack_drawing(file_name, col_diff)
        #return JsonResponse({"rank_txt_name": rank_txt_name, "rank_pic_name": rank_pic_name})
    return render(request,"decode_key.html")

报错信息如下:

img

在attack_drawing函数里我有设置返回值return rank_list。

def attack_drawing(data_file_path,trace_number):
    # 需要测试的模型路径
    model_file_path = "NO.1_-174.pth"

    if __name__ == "__main__":

  
        for i in range(256):
            key_score[i] = 0.0  
        test_data_loader, plain_texts = load_ascad(data_file_path, 1, False, 1, wave_flag=True, get_level=0)
        # 存储rank的list #
        rank_list = []

        with torch.no_grad():
            for i, data in enumerate(tqdm.tqdm(test_data_loader)):  # data是一个元组,包含 att_trace, att_label

                if (data_count == trace_number):
                    break

#省略了中间代码
                
                if (rank == 0 and rank_zero_count == 0):
                    rank_zero_count = i

                rank_list.append(rank)

        return rank_list

我新建py文件进行测试,用下列代码

def test():
    print(attack_drawing('ASCAD.h5', 1000))

test()

可以得到正确的返回值。

img

有没有人知道这个问题怎么解决。我这个算法执行时间差不多得7s左右,不知道是不是和js的等待返回操作有关系呢。
万分感谢

问题解决了,家人们。忘了删除if name == "main":这句话了