Можно ли создать пустой файл 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
Вернуться на верх