首页 > 其他分享 >django 上传文件

django 上传文件

时间:2023-08-21 12:12:19浏览次数:35  
标签:__ 文件 data self django file 上传 class serializer

前后端分离下django 框架上传文件实现方式

实现方式一,通过model字段FileFiled()来实现

  • model类

class Report(models.Model):
    p_id = models.PositiveIntegerField('病人ID')
    file = models.FileField(upload_to='uploads/report/%Y/%m/%d/')

    def __str__(self):
        return str(self.file)
  • serializer 类

class ReportSerializer(serializers.ModelSerializer):
    file = serializers.FileField()

    class Meta:
        model = Report
        fields = '__all__'
  • 视图类

class ReportUploadView(generics.CreateAPIView):
    # queryset = Report.objects.all()
    serializer_class = ReportSerializer
    parser_classes = [MultiPartParser, FormParser]

    def post(self, request, *args, **kwargs):
        print('Upload', request.data['p_id'])
        serializer = self.get_serializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            print(serializer.data)
            serializer.data.pop('file')
            # serializer.data['file'] = parse.unquote(serializer.data.pop('file'))
            print('上传文件中', serializer.data)
            return APIResponse(status.HTTP_201_CREATED, serializer.data)
        else:
            return APIResponse(status.HTTP_400_BAD_REQUEST, serializer.errors)


来自为知笔记(Wiz)

标签:__,文件,data,self,django,file,上传,class,serializer
From: https://www.cnblogs.com/baiyifengyun/p/17645669.html

相关文章

  • 利用pycharm创建第一个django API项目
    From:  ICT浪子 ICT浪子 2023-08-1916:34 发表于湖北---------------------------------------------------------------------------一、pycharm操作1、打开PyCharm,进入欢迎界面。2、点击"CreateNewProject"或选择"File"->"NewProject"。3、在新项目对话框中,......
  • linux文件系统概念
    文件系统是操作系统中负责管理持久数据的子系统,说简单点,就是负责把用户的文件存到磁盘硬件中,因为即使计算机断电了,磁盘里的数据并不会丢失,所以可以持久化的保存文件。索引节点,也就是 inode,用来记录文件的元信息,比如inode编号、文件大小、访问权限、创建时间、修改时间、数据......
  • Java前端上传文件后,将文件传输到后端,并将文件上传到FTP服务器上
    当我们在前端上传文件后,需要将文件传输到后端,并将文件上传到FTP服务器上。在Java中,我们可以使用ApacheCommonsNet库来实现FTP文件上传。下面是一个简单的示例,演示了如何在Java中实现前端上传文件后端接收并上传到FTP服务器的过程。前端上传文件首先,在前端页面中,我们需要一个文件......
  • 4.5 C++ Boost 文件目录操作库
    Boost库是一个由C/C++语言的开发者创建并更新维护的开源类库,其提供了许多功能强大的程序库和工具,用于开发高质量、可移植、高效的C应用程序。Boost库可以作为标准C库的后备,通常被称为准标准库,是C标准化进程的重要开发引擎之一。使用Boost库可以加速C应用程序的开发过程,提高代码质......
  • 《深入浅出Java虚拟机 — JVM原理与实战》带你攻克技术盲区,夯实底层基础 —— 吃透cla
    前言介绍了解Java代码如何编译成字节码并在JVM上执行是非常重要的。这种理解可以帮助我们理解程序执行时发生的情况,确保语言特性符合逻辑,并在进行讨论时能够全面考虑各种因素和副作用。本文将深入探讨Java代码编译成字节码并在JVM上执行的过程。如果您对JVM的内部结构和字节码执行......
  • 小文件问题
    Hadoop小文件问题小文件是指比HDFS默认块大小明显小得多的文件。小文件导致了什么问题对于存储层来说,大量小文件会产生大量的元数据信息;当NN重启时,必须将元数据信息加载到内存中,大量元数据信息会导致NN重启速度非常慢;并且,太多小文件也会导致NN在DN耗尽磁盘空间之前就先耗尽内存......
  • Flutter 应用程序如何组织可扩展的文件夹结构
    开发人员在使用Flutter时经常面临的挑战之一是如何以可扩展和可维护的方式组织项目。文件夹结构在这方面起着关键作用。让我们深入了解如何构建Flutter应用程序以实现可扩展性。文件夹结构的重要性为Flutter应用程序选择正确的文件夹结构是非常重要的。它直接影响团队合作时......
  • Rocky虚拟机(Three Days)用户与组管理与目录/文件权限
    ThreeDays一、用户管理1、概述Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方......
  • Linux常用命令_文件目录操作命令(mkdir、rm、rmdir)
       ......
  • Geotools实现shape文件的写入
        众所周知Geotools作为开源的JavaGIS三方库,已经成为GIS服务器端的主流开源库,其功能非常强大,涉及到GIS业务的方方面面,其中就包括GIS数据的读写,今天小编就借助Geotools来实现shape数据的写入。   Geotools对于shape数据写入,主要提供了SimpleFeatureStore和Featur......