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基础教程之python消息摘要算法使用示例
Feb 10 Python
python实现的简单文本类游戏实例
Apr 28 Python
python定时执行指定函数的方法
May 27 Python
在Lighttpd服务器中运行Django应用的方法
Jul 22 Python
Python Web框架Tornado运行和部署
Oct 19 Python
python中私有函数调用方法解密
Apr 29 Python
python 日期操作类代码
May 05 Python
初探利用Python进行图文识别(OCR)
Feb 26 Python
django-crontab 定时执行任务方法的实现
Sep 06 Python
Python实现电视里的5毛特效实例代码详解
May 15 Python
Python之Matplotlib文字与注释的使用方法
Jun 18 Python
OpenCV利用python来实现图像的直方图均衡化
Oct 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
解析argc argv在php中的应用
2013/06/24 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
js获取IP和PcName(IE)在vs中可用
2013/08/02 Javascript
js获取电脑分辨率的思路及操作
2013/11/22 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
浅析Jquery操作select
2016/12/13 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
浅谈ECMAScript6新特性之let、const
2017/08/02 Javascript
JS实现获取word文档内容并输出显示到html页面示例
2018/06/23 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
2018/11/05 Javascript
教你30秒发布一个TypeScript包到NPM的方法步骤
2019/07/22 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
Python中join和split用法实例
2015/04/14 Python
安装Python的教程-Windows
2017/07/22 Python
24式加速你的Python(小结)
2019/06/13 Python
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
2019/08/09 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
Python 实现黑客帝国中的字符雨的示例代码
2020/02/20 Python
ASP.NET Core中的配置详解
2021/02/05 Python
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
高级护理专业毕业生推荐信
2013/12/25 职场文书
廉洁自律个人总结
2015/02/14 职场文书
2015年团支部工作总结
2015/04/03 职场文书
公司开业致辞
2015/07/29 职场文书
重阳节主题班会
2015/08/17 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
检讨书格式
2019/04/25 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
HDFS免重启挂载新磁盘
2022/04/06 Servers