Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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
Django文件上传获取数据并存储在数据库中_Django - Fatal编程技术网

Django文件上传获取数据并存储在数据库中

Django文件上传获取数据并存储在数据库中,django,Django,我是Django的新手,希望获得有关文件上传的建议。用户可以上传多个文件,但我不希望将文件存储在数据库中。我只想从文件中获取数据并将数据存储在数据库中。有办法吗?将文件存储在本地是一种方法吗 我已经看到了在本地临时存储文件的方法,但是我已经看到了一些例子,其中我们需要指定自己的计算机路径,对于不同的计算机可能会有所不同。有没有一种方法可以指定任何计算机可以在本地存储文件的路径 很抱歉没有代码,因为我仍在考虑如何操作。大多数人会说,只需将文件路径存储在数据库中,然后让web服务器为文件提供服务。除

我是Django的新手,希望获得有关文件上传的建议。用户可以上传多个文件,但我不希望将文件存储在数据库中。我只想从文件中获取数据并将数据存储在数据库中。有办法吗?将文件存储在本地是一种方法吗

我已经看到了在本地临时存储文件的方法,但是我已经看到了一些例子,其中我们需要指定自己的计算机路径,对于不同的计算机可能会有所不同。有没有一种方法可以指定任何计算机可以在本地存储文件的路径


很抱歉没有代码,因为我仍在考虑如何操作。

大多数人会说,只需将文件路径存储在数据库中,然后让web服务器为文件提供服务。除非您希望人们上传电子表格之类的东西,否则您应该使用电子表格插件将内容放入列表和字典中,您可以将其作为模型写出

以下是如何按照您要求的方式进行操作:

def handle_uploaded_file(upload):
    contents = file.read() # Add .decode('ascii') if Python 3
    my_model = MyModel(some_other_field='something')
    my_model.field = contents
    my_model.save()

class UploadFileForm(forms.Form):
    title = forms.CharField(max_length=50)
    file = forms.FileField()

def upload_file(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            handle_uploaded_file(request.FILES['file'])
            return HttpResponseRedirect('/success/url/')
    else:
        form = UploadFileForm()
    return render(request, 'upload.html', {'form': form})