Есть ли пакет или функция сохранить CSV-файл в формате таблицы базы данных - PullRequest
0 голосов
/ 20 июня 2019

Сценарий: пользователь загружает файл CSV и в бэкэнде сохраняет CSV как файл.Сейчас я пытаюсь сохранить эти CSV-файл в базе данных в виде таблицы.Когда csv сохранит базу данных, она будет отображать данные как pandas dataframe.

Я уже вижу некоторые пакеты, такие как django-import-export.Но это не то, что я хочу.Главное, чтобы в этих пакетах создавалась модель перед загрузкой файла.Но я не создаю модель перед тем, как пользователь загружает файл.

вот мой код django.

model.py


from django.db import models

# Create your models here.
from django.db import models

# Create your models here.


class DataUpload(models.Model):
    fileId = models.AutoField(primary_key=True)
    data_upload = models.FileField(upload_to='files/')

    class Meta:
        db_table = 'DataUpload'

forms.py


from django import forms
from .models import DataUpload

class PostForm(forms.ModelForm):
    class Meta:
        model = DataUpload
        fields = ['data_upload']

urls.py


from django.urls import path
from .views import dataview , FileView, ResultView
# from .views import BonolothaDataView
urlpatterns = [
    path('', dataview.as_view()),
    path('fileview/', FileView.as_view(), name='fileview'),
    path('result/', ResultView.viewResult, name='result'),
    # path('bonolotha/', BonolothaDataView.as_view(), name='bonolotha'),



]

views.py


class dataview(View):

    model = DataUpload
    form_class = PostForm

    initial = {'key': 'value'}
    template_name = 'post.html'

    fileview_url = reverse_lazy('fileview')


    def get(self, request, *args, **kwargs):

        form = self.form_class(initial=self.initial) # pribt html form 
        return render(request, self.template_name, {'form':form})

    def post(self, request, *args, **kwargs):

        form = self.form_class(request.POST, request.FILES)
        context = {
            'form': form,
        }

        if form.is_valid():
            form.save()
            return redirect(self.fileview_url)
        else:
            form = self.form_class()    
        return render(request, self.template_name, context)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...