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和Perl绘制中国北京跑步地图的方法
Mar 03 Python
浅谈python为什么不需要三目运算符和switch
Jun 17 Python
Python操作Access数据库基本步骤分析
Sep 19 Python
浅谈使用Python内置函数getattr实现分发模式
Jan 22 Python
python实现图像识别功能
Jan 29 Python
CentOS7下python3.7.0安装教程
Jul 30 Python
浅谈pycharm的xmx和xms设置方法
Dec 03 Python
详解用Python实现自动化监控远程服务器
May 18 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
Jun 25 Python
python 猴子补丁(monkey patch)
Jun 26 Python
np.dot()函数的用法详解
Jan 17 Python
基于python爬取梨视频实现过程解析
Nov 09 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
PHP4与PHP3中一个不兼容问题的解决方法
2006/10/09 PHP
php 动态多文件上传
2009/01/18 PHP
PHP JSON格式数据交互实例代码详解
2011/01/13 PHP
浅谈PHP中的错误处理和异常处理
2017/02/04 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
Laravel如何实现自动加载类
2019/10/14 PHP
js自动生成对象的属性示例代码
2013/10/28 Javascript
基于jquery扩展漂亮的下拉框可以二次修改
2013/11/19 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
vue-axios使用详解
2017/05/10 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
[00:58]他们到底在电话里听到了什么?
2017/11/21 DOTA
Python文件夹与文件的操作实现代码
2014/07/13 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
基于Python爬取爱奇艺资源过程解析
2020/03/02 Python
Python 面向对象部分知识点小结
2020/03/09 Python
python numpy矩阵信息说明,shape,size,dtype
2020/05/22 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
英国轻奢珠宝品牌:Astley Clarke
2016/12/18 全球购物
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
Under Armour澳大利亚官网:美国知名的高端功能性运动品牌
2018/02/22 全球购物
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
工程造价专业大专生求职信
2013/10/06 职场文书
小学生自我鉴定
2013/10/12 职场文书
应用化学专业职业生涯规划书
2014/01/22 职场文书
财务检查整改报告
2014/11/06 职场文书
2015年档案管理员工作总结
2015/05/13 职场文书
Python图片检索之以图搜图
2021/05/31 Python
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers