python - 将 excel 文件从主目录保存到 Django 中的数据库模型

标签 python django

如何将pd.dataframe生成的文件保存到某个数据库记录。

这就是 View ..

@csrf_exempt
def Data_Communication(request):
    if request.method == 'POST':
        data_sets_number = (len(request.POST)) - 1
        Data_Sets_asNestedList = []
        Data_set_id = request.POST.get('id')
        Data_instance = Data_Sets.objects.get(pk=Data_set_id)
        for x in range(data_sets_number):
            i = 1
            Data_Sets_asNestedList.append(request.POST.getlist('Data'+str(i)))
            i = i + 1
        pd.DataFrame(Data_Sets_asNestedList).to_excel('output.xlsx', header=False, index=False)
        print(Data_Sets_asNestedList)
        return HttpResponse('1')

最佳答案

如果您希望将生成的 Excel 文件与模型 Data_Sets 关联起来,那么您可能需要添加 FileField到该模型:

class Data_Sets(models.Model):
    excel_file = fields.FileField()

在 View 中创建 Excel 文件后,您可以将其与新字段关联:

from django.core.files import File

@csrf_exempt
def Data_Communication(request):
    if request.method == 'POST':
        data_sets_number = (len(request.POST)) - 1
        Data_Sets_asNestedList = []
        Data_set_id = request.POST.get('id')
        Data_instance = Data_Sets.objects.get(pk=Data_set_id)
        for x in range(data_sets_number):
            i = 1
            Data_Sets_asNestedList.append(request.POST.getlist('Data'+str(i)))
            i = i + 1
        pd.DataFrame(Data_Sets_asNestedList).to_excel('output.xlsx', header=False, index=False)

        # Associate the Excel file with the model
        with open('output.xlsx', 'rb') as excel:
            Data_instance.excel_file.save('output.xlsx', File(excel))

        print(Data_Sets_asNestedList)
        return HttpResponse('1')

Excel 文件本身将保存到MEDIA_ROOT 指定的文件夹中。在 settings.py 中进行设置,模型将通过 excel_file 属性指向该文件。

请注意,您可能希望为 output.xlsx 生成唯一的文件名,以避免请求相互干扰。

有关保存文件的其他信息可以找到 here .

关于python - 将 excel 文件从主目录保存到 Django 中的数据库模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54189279/

相关文章:

python - Django 找不到模板

python - 从字典的值中删除标点符号和停用词

python - django-pytest setup_method 数据库问题

python - Django queryset order_by绝对值

Django - 将功能划分为应用程序

python - pandas dataframe dtypes比较相等

python - 您无权访问 Python Eve 中请求的资源

python - 如何在 Pytorch 中应用分层学习率?

python - 'NoneType' 对象没有属性 'set_cookie'

python - 如何获取 models.py 文件中外键值的最大值?