Можно ли создать пустой файл csv в базе данных Django?
Мне интересно, возможно ли создать пустой файл csv в базе данных Django. В основном я пытаюсь сделать следующее: позволить пользователю загрузить текстовый файл как объект модели TextUpload, затем запустить код в бэкенде для обработки текстового файла и сохранения его как объект модели ProcessedTextToCsv. Мой код views.py выглядит примерно так:
def upload_view(request):
form = TextUploadsModelform(request.POST or None, request.FILES or None)
if form.is_valid():
form.save()
form = TextUploadsModelform()
ProcessedTextToCsv().save()
Мне интересно, могу ли я создать пустой csv, чтобы использовать имя_файла.путь в качестве аргумента в функции ниже
processTextToCsv(TextUploads.objects.latest('uploaded').file_name.path,ProcessedTextToCsv.objects.latest('uploaded').file_name.path)
return render(request, 'main_app/example.html',{'form': form})
Не существует такого понятия, как база данных Django. Django - это фреймворк, который использует несколько баз данных.
Возвращаясь к вашему вопросу, да, это возможно, все шаги описаны в учебнике Django для basic-file-uploads, то, что вы хотите, это что-то подобное этому:
forms.py:
from django import forms
class UploadFileForm(forms.Form):
title = forms.CharField(max_length=50)
file = forms.FileField()
views.py:
from django.http import HttpResponseRedirect
from django.shortcuts import render
from .forms import UploadFileForm
# Imaginary function to handle an uploaded file.
from somewhere import handle_uploaded_file
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})
"somewhere".py:
def handle_uploaded_file(f):
with open(f, 'r') as file:
# read lines
# Treat the data to CSV format
with open("/path/to/your/file.csv",'w') as outfile:
# write your data