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 图片验证码代码
Dec 07 Python
Python functools模块学习总结
May 09 Python
Python实现简单的文件传输与MySQL备份的脚本分享
Jan 03 Python
python解析html提取数据,并生成word文档实例解析
Jan 22 Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
Apr 26 Python
python求解数组中两个字符串的最小距离
Sep 27 Python
Python实现的读取文件内容并写入其他文件操作示例
Apr 09 Python
Python接口测试get请求过程详解
Feb 28 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
Apr 10 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
May 09 Python
使用Python爬取小姐姐图片(beautifulsoup法)
Feb 11 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/06/17 PHP
PHP内置的Math函数效率测试
2014/12/01 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
php基于PDO实现功能强大的MYSQL封装类实例
2017/02/27 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
2018/05/31 PHP
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
2007/01/16 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
2013/07/09 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
2019/04/28 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
2015/04/11 Python
TF-IDF算法解析与Python实现方法详解
2017/11/16 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
在python 不同时区之间的差值与转换方法
2019/01/14 Python
Python基于opencv调用摄像头获取个人图片的实现方法
2019/02/21 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
在Django下创建项目以及设置settings.py教程
2019/12/03 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
Django静态文件加载失败解决方案
2020/08/26 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
程序员经常用到的UNIX命令
2015/04/13 面试题
自考毕业自我鉴定范文
2013/10/27 职场文书
电子商务专业个人的自我评价
2013/11/19 职场文书
主管会计岗位责任制
2014/02/10 职场文书
学校群众路线专项整治方案
2014/10/31 职场文书
高中16字霸气押韵班级口号集锦!
2019/06/27 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
mysql字符串截取函数小结
2021/04/05 MySQL
Java实现房屋出租系统详解
2021/10/05 Java/Android
《乙女游戏世界对路人角色很不友好》OP主题曲无字幕动画MV公开
2022/04/05 日漫