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 相关文章推荐
Python中for循环详解
Jan 17 Python
跟老齐学Python之传说中的函数编写条规
Oct 11 Python
Python获取网页上图片下载地址的方法
Mar 11 Python
Python3控制路由器——使用requests重启极路由.py
May 11 Python
分析Python中解析构建数据知识
Jan 20 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
Dec 26 Python
浅谈Python中eval的强大与危害
Mar 13 Python
python实现植物大战僵尸游戏实例代码
Jun 10 Python
Python基于Tensor FLow的图像处理操作详解
Jan 15 Python
pyecharts动态轨迹图的实现示例
Apr 17 Python
python中setuptools的作用是什么
Jun 19 Python
pycharm安装深度学习pytorch的d2l包失败问题解决
Mar 25 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
显示程序执行时间php函数代码
2013/08/29 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
jQuery 操作option的实现代码
2011/03/03 Javascript
JS判定是否原生方法
2013/07/22 Javascript
js跨域访问示例(客户端/服务端)
2014/05/19 Javascript
JavaScript分秒倒计时器实现方法
2015/02/02 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
jQuery.validate.js表单验证插件的使用代码详解
2018/10/22 jQuery
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
python获得linux下所有挂载点(mount points)的方法
2015/04/29 Python
python运行时间的几种方法
2016/06/17 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
Python实现将Excel转换成xml的方法示例
2018/08/25 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
python操作cfg配置文件方式
2019/12/22 Python
python实现简单的五子棋游戏
2020/09/01 Python
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
2014年计算机专业个人自我评价
2014/01/19 职场文书
教师简历自我评价
2014/02/03 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
2014乡镇党委副书记对照检查材料思想汇报
2014/10/09 职场文书
企业与个人合作经营协议书
2014/11/01 职场文书
西湖英语导游词
2015/02/06 职场文书
大一学生个人总结
2015/02/15 职场文书
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android