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



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

这就是观点。。

@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()

一旦在视图中创建了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文件本身将保存到settings.pyMEDIA_ROOT设置指定的文件夹中,模型将通过excel_file属性指向该文件。

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

有关保存文件的其他信息可以在此处找到。

  1. 不要随意将数据插入数据库,请先使用django验证系统验证数据。

  2. 检查bulkcreateapi以存储大块的记录。

最新更新