django文件直接上传到缓冲区

时间:2013-11-01 14:06:15

标签: python django

我想将文件上传到django视图并将其传递给转换函数,该函数执行其他所有操作。转换函数db_transform_and_save需要类似文件的对象。到目前为止,我的工作解决方案是:

class UploadView(FormView):
    template_name = 'mytemplate.html'
    form_class = MyUploadForm

    def form_valid(self, form):
        db_transform_and_save(form.cleaned_data['my_upload'].read())

我的问题是:

  1. 有没有任何数据丢失方式?
  2. 如果在上传过程中连接失败会怎样?这意味着我的db_transform_and_save函数会永远运行吗?
  3. 如果要处理多个服务器连接会发生什么?
  4. 我需要某种机制吗?
  5. 我正在运行这个django应用程序,带着一个枪手,4名工人。

1 个答案:

答案 0 :(得分:0)

  1. 如果您的服务器崩溃或连接丢失,是的,您将丢失数据 - 除非您对文件上传进行微管理,传输非常小的块并自行实现确认层,否则无法解决问题。只要你不是过于批评任务,这可能是过度杀伤......
  2. 发布的数据不会到达,您将收到一个空文档(您应该在db_transform_and_save中查看!)
  3. 它会慢下来。如果有很多方法,它会显着减速(几乎没有反应)。如果您希望加载大量数据,则应使用实际的上传大小测试系统。在正常情况下,一切都应该顺利进行......
  4. 只要您的上传不会互相干扰,您就不需要其他任何内容了。