Django import export实现数据库导入导出方式


Posted in Python onApril 03, 2020

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

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

1、安装django-import-export

pip install 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',
 'customer',
 'publisher',
 'import_export',
)

执行命令: python manage.py collectstatic

3、models.py 建立model

class Author(models.Model):
 name = models.CharField(max_length=100)

 def __unicode__(self):
  return self.name


class Category(models.Model):
 name = models.CharField(max_length=100)

 def __unicode__(self):
  return self.name


class Book(models.Model):
 name = models.CharField('Book name', max_length=100)
 author = models.ForeignKey(Author, blank=True, null=True)
 author_email = models.EmailField('Author email', max_length=75, blank=True)
 imported = models.BooleanField(default=False)
 published = models.DateField('Published', blank=True, null=True)
 price = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)
 categories = models.ManyToManyField(Category, blank=True)

 def __unicode__(self):
  return self.name

4、在admin.py 创建Resource、对应的Admin

from import_export import resources
from core.models import Book
from import_export.admin import ImportExportModelAdmin


class BookResource(resources.ModelResource):

 class Meta:
  model = Book
  export_order = ('id', 'name', 'author', 'author_email', 'imported', 'click', 'published', 'price', 'categories')

@admin.register(Book)
class BookAdmin(ImportExportModelAdmin):
 list_display = ('name', 'author', 'author_email', 'imported', 'published', 'price', 'categories')
 search_fields = ('name', 'author','published')
 date_hierarchy = 'date' 
 resource_class = BookResource

export_order:设置导出字段的顺序

5、Django界面实现导入导出

Django import export实现数据库导入导出方式

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

import xlwt
#导出Excel
from django.http import StreamingHttpResponse
class AdminReport(admin.ModelAdmin):
 actions = ["saveexecl"]     # 自定义的action(导出到excel表格)
 list_display = ("id",'offer','day_time', 'idfa', 'submit_result_text', 'callback_result_text') # 显示的列
 search_fields = ('day_time','callback_result_text')  # 可以搜索的字段
 date_hierarchy = 'day_time'  # 按照日期显示
 list_filter = ('offer',)   # 过滤条件
 list_per_page = 500    # 每页显示500条,太多了可能会出现服务器崩掉的情况
 
 def saveexecl(self,request,queryset):
  Begin = xlwt.Workbook()
  sheet = Begin.add_sheet("response")
  cols = 0
  for query in queryset:
   # you need write colms      # 好像有个方法可以一次性写入所有列,记不清了,只能用这种简单的方法去实现
   sheet.write(cols,1,str(query.idfa))  # 写入第一列
   sheet.write(cols,2,str(query.day_time)) # 写入第二列
   sheet.write(cols,3,str(query.keyword))  # 写入第三列
   cols += 1
  Begin.save("%s" %(filename))
  def file_iterator(filename,chuck_size=512):
   with open(filename,"rb") as f:
    while True:
     c = f.read(chuck_size)
     if c:
      yield c
     else:
      break
  response = StreamingHttpResponse(file_iterator(filename))
  response['Content-Type'] = 'application/octet-stream'
  response['Content-Disposition'] = 'attachment;filename="{}"'.format("result.xls")
  return response
 saveexecl.short_description = "导出Excel"   # 按钮显示名字


admin.site.register(Report, AdminReport)  # 注册到admin

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

Python 相关文章推荐
matplotlib在python上绘制3D散点图实例详解
Dec 09 Python
微信跳一跳python自动代码解读1.0
Jan 12 Python
Python3标准库总结
Feb 19 Python
python opencv 简单阈值算法的实现
Aug 04 Python
如何基于Python实现电子邮件的发送
Dec 16 Python
解决tensorboard多个events文件显示紊乱的问题
Feb 15 Python
pandas数据拼接的实现示例
Apr 16 Python
python 字符串的驻留机制及优缺点
Jun 19 Python
Python文件操作及内置函数flush原理解析
Oct 13 Python
python 装饰器重要在哪
Feb 14 Python
Pytorch 统计模型参数量的操作 param.numel()
May 13 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 21 Python
Django用户身份验证完成示例代码
Apr 03 #Python
基于Python共轭梯度法与最速下降法之间的对比
Apr 02 #Python
python 的topk算法实例
Apr 02 #Python
python torch.utils.data.DataLoader使用方法
Apr 02 #Python
Python基于stuck实现scoket文件传输
Apr 02 #Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
Apr 02 #Python
Pytorch 使用不同版本的cuda的方法步骤
Apr 02 #Python
You might like
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
2011/11/10 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
javascript面向对象之Javascript 继承
2010/05/04 Javascript
js实现按Ctrl+Enter发送效果
2014/09/18 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
JavaScript生成带有缩进的表格代码
2016/06/15 Javascript
使用canvas进行图像编辑的实例
2017/08/29 Javascript
Vue的data、computed、watch源码浅谈
2020/04/04 Javascript
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
详解python3中的真值测试
2018/08/13 Python
python pexpect ssh 远程登录服务器的方法
2019/02/14 Python
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
QML使用Python的函数过程解析
2019/09/26 Python
Django自定义用户表+自定义admin后台中的字段实例
2019/11/18 Python
Python中logging日志库实例详解
2020/02/19 Python
jupyter notebook tensorflow打印device信息实例
2020/04/20 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
基本款天堂:Everlane
2017/05/13 全球购物
药剂学专业应届生自荐信
2013/09/29 职场文书
高校教师自荐信范文
2014/03/13 职场文书
安全生产月活动总结
2014/05/04 职场文书
企业晚会策划方案
2014/05/29 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
爱国主义主题班会
2015/08/14 职场文书
小学体育队列队形教学反思
2016/02/16 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers