在Django的HttpRequest中传递一个pickle对象

时间:2017-11-09 22:40:58

标签: python django pickle

我正在尝试将sklearn模型对象从服务器端移动到客户端。我是django的新手,所以我很挣扎。

选项一是jsonify所有模型参数,传递它们并用这些参数重建一个新的模型对象。

然而,在我试图简化和学习django时,我一直试图传递一个腌制对象并失败。

我最初尝试过一些简单的事情:

result = pickle.dumps({'test':'test'}, pickle.HIGHEST_PROTOCOL)
return HttpResponse(pkl)

当我从前端API获取它时,如果我做了一个简单的

pickle.loads(api_res)

我收到类型实例错误。当我这样做时:

pickle.loads(api_res.read())

它给了我一个EOF错误。

我知道也有可能只是pickle.dump而不是字符串版本,但是我在使用djangos内容类型等方面遇到了麻烦。我似乎只是在出路时感到胡言乱语。

不幸的结果是,很难找到人们序列化对象并使用django返回它们的实例,因为几乎所有结果都是关于序列化/挑选django对象本身。

任何帮助/链接都将不胜感激。

1 个答案:

答案 0 :(得分:1)

点零点:永远不要让任何人注入你的pickle.load。请参阅Arbitrary code execution with Python pickles

如果您完全确定要执行此操作,请检查您的前端正在执行的操作。也许,它以某种方式改变数据或在一个字段中发送数据。另外,请检查api_res实例的课程文档。