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使用Socket(Https)Post登录百度的实现代码
May 18 Python
python中xrange用法分析
Apr 15 Python
python计算对角线有理函数插值的方法
May 07 Python
Python多线程实现同步的四种方式
May 02 Python
老生常谈进程线程协程那些事儿
Jul 24 Python
python中is与双等于号“==”的区别示例详解
Nov 21 Python
Python的地形三维可视化Matplotlib和gdal使用实例
Dec 09 Python
基于Python的文件类型和字符串详解
Dec 21 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
python打印直角三角形与等腰三角形实例代码
Oct 20 Python
Python 依赖库太多了该如何管理
Nov 08 Python
Python内置数据类型list各方法的性能测试过程解析
Jan 07 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
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
PHP中imagick函数的中文解释
2015/01/21 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
javaScript同意等待代码实现心得
2011/01/01 Javascript
JavaScript实现网页截图功能
2014/10/16 Javascript
原生javascript实现简单的datagrid数据表格
2015/01/02 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
Python网页解析利器BeautifulSoup安装使用介绍
2015/03/17 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
python的setattr函数实例用法
2020/12/16 Python
python批量提取图片信息并保存的实现
2021/02/05 Python
用CSS3的box-reflect来制作倒影效果
2016/11/15 HTML / CSS
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
苹果音乐订阅:Apple Music
2018/08/02 全球购物
入党申请自荐书范文
2014/02/11 职场文书
企业承诺书怎么写
2014/05/24 职场文书
教师业务学习材料
2014/12/16 职场文书
小平小道观后感
2015/06/09 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
年终工作总结范文
2019/06/20 职场文书
mysql sock 文件解析及作用讲解
2022/07/15 MySQL