Django进出口实现数据库导入导出方式

  

使用django-import-export库,导入导出数据,支持csv、xls、json、html等格式

  

官网:http://django-import-export.readthedocs.io/en/latest/installation.html

  

1,安装django-import-export

  
  

pip安装django-import-export      

2,配置settings.py

        INSTALLED_APPS=(   “django.contrib.admin”,   “django.contrib.auth”,   “django.contrib.contenttypes”,   “django.contrib.sessions”,   “django.contrib.messages”,   “django.contrib.staticfiles”,   “客户”,   “发行人”,   “import_export”,   )      

执行命令:python管理。py collectstatic

  

3,模型。py建立模型
  

        类作者(models.Model):   name=models.CharField (max_length=100)      def __unicode__(自我):   返回self.name         类类别(models.Model):   name=models.CharField (max_length=100)      def __unicode__(自我):   返回self.name         类的书(models.Model):   name=模型。CharField(书的名字,max_length=100)   作者=模型。ForeignKey(作者、空白=True null=True)   author_email=模型。EmailField(作者电子邮件,max_length=75,空白=True)   进口=models.BooleanField(默认=False)=发布模型。DateField(“发表”,空白=True, null=True)   价格=模型。DecimalField (max_digits=10, decimal_places=2, null=True,空白=True)   类别=模型。ManyToManyField(类别,空白=True)      def __unicode__(自我):   返回self.name   之前      

4,在管理。py创建资源,对应的管理
  

        从import_export进口资源   从核心。模型导入的书   从import_export。管理导入ImportExportModelAdmin         类BookResource (resources.ModelResource):      类元:   模型=书   export_order=(“id”、“名称”,“作者”,“author_email”、“进口”,“点击”,“出版”,“价格”、“类别”)      @admin.register(书)   类BookAdmin (ImportExportModelAdmin):   按照list_display=(“名称”、“作者”、“author_email”、“进口”,“出版”,“价格”、“类别”)   search_fields=(“名称”、“作者”、“发表”)   date_hierarchy=叭掌凇?   resource_class=BookResource   之前      

export_order:设置导出字段的顺序

  

5, Django界面实现导入导出

  

 Django进出口实现数据库导入导出方式

  

自定义导出方式行动这种方式也推荐

        进口xlwt   #导出Excel   django。http进口StreamingHttpResponse   类AdminReport (admin.ModelAdmin):   行动=(“saveexecl”) #自定义的行动(导出到excel表格)   按照list_display=(“id”,“提供”,‘day_time’,‘idfa’,‘submit_result_text’,‘callback_result_text’) #显示的列   search_fields=(day_time, callback_result_text) #可以搜索的字段   date_hierarchy=' day_time ' #按照日期显示   list_filter=(“提供”)#过滤条件   list_per_page=500 #每页显示500条,太多了可能会出现服务器崩掉的情况      def saveexecl(自我,请求,queryset):   开始=xlwt.Workbook ()   表=Begin.add_sheet(“响应”)   关口=0   在queryset查询:   #你需要写投资银行部#好像有个方法可以一次性写入所有列,记不清了,只能用这种简单的方法去实现   sheet.write(关口1 str (query.idfa)) #写入第一列   sheet.write(关口,2,str (query.day_time)) #写入第二列   sheet.write(关口,3,str (query.keyword)) #写入第三列   关口+=1   开始。保存(“% s”%(文件名)   def file_iterator(文件名,chuck_size=512):   与open (filename, rb) f:   而真正的:   c=f.read (chuck_size)   如果c:   收益率c   其他:   打破   响应=StreamingHttpResponse (file_iterator(文件名)   反应(“内容类型”)='应用程序/八进制的   反应(“附加”)='附件;文件名=皗}”.format (“result.xls”)   返回响应   saveexecl。short_description="导出Excel“#按钮显示名字         admin.site。注册(报告,AdminReport) #注册到管理      

以上这篇Django进出口实现数据库导入导出方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

Django进出口实现数据库导入导出方式