我将在django中创建一个没有模型的csv文件的数据库表。步骤如下:通过post请求发送csv文件后,将根据csv文件头(名称、大学、分数、总分等)创建一个数据库表。并使用csv文件数据填充。数据库表名称应派生自csv文件名。我搜索了一下,但没有找到好的解决方案。任何帮助都将不胜感激。下面是我的代码来读取csv文件类UploadProductApiView(generics.CreateAPIView):serializer_class =文件上载序列化程序
def post(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
file = serializer.validated_data['file']
decoded_file = file.read().decode()
# upload_products_csv.delay(decoded_file, request.user.pk)
io_string = io.StringIO(decoded_file)
reader = csv.reader(io_string)
for row in reader:
print(row)
1条答案
按热度按时间c9x0cxw01#
你可以创建一个动态的Django模型:https://code.djangoproject.com/wiki/DynamicModels
使用这种方法,您可以动态创建模型,并通过运行以下代码片段
您可以将模型迁移到数据库中并使用它来访问和存储csv数据。
将路径设置为您希望生成模型文件的位置。我不确定此命令是否会覆盖或追加到当前文件,因此您可以尝试追加到当前文件,如果不起作用,请创建一个临时文件并将输出写入其中,然后将其追加到您所需的models.py文件:https://www.geeksforgeeks.org/python-append-content-of-one-text-file-to-another/
完成整个过程后,您将生成、执行迁移,并在www.example.com中创建模型models.py以便在服务器重新启动时使用。