使用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界面实现导入导出
自定义导出方式行动这种方式也推荐
进口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进出口实现数据库导入导出方式