如何将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')
答案 0 :(得分:0)
不要将您的数据随机插入数据库,请使用django验证系统首先验证您的数据。
检查bulk_create api以存储大块记录。
答案 1 :(得分:0)
如果您希望将生成的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.py
中MEDIA_ROOT
设置指定的文件夹中,并且模型将通过excel_file
属性指向该文件。
请注意,您可能希望为output.xlsx
生成一个唯一的文件名,以免请求彼此间出现麻烦。
有关保存文件的其他信息,here。