跳转到主要内容

从您的Django模型异步导出数据

项目描述

django-data-exporter是一个简单的Django应用程序,用于从您的模型异步导出数据。

它基于Celery (>= 2.3)来使用Chordstablib以多种格式导出您的数据。

安装

  1. 您可以从GitHub检查包,或者通过PyPI进行拉取

    pip install django-data-exporter
  2. 配置您的Django项目以使用djcelery

  3. 将“data_exporter”添加到您的INSTALLED_APPS

    INSTALLED_APPS = (
        'data_exporter',
    )

使用方法

django-data-exporter使用通道来发现您的导出并将它们传输到celery。假设您在polls应用程序中有一个以下模型

# polls/models.py
from django.db import models


class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

    def __unicode__(self):
        return self.question

现在,您想定义第一个导出器,对吗?在您的polls应用程序中创建一个exports.py文件,并扩展Export以构建自己的导出器

# polls/exports.py
from data_exporter.base import Export

from polls.models import Poll


class PollExport(Export):
    filename = 'poll'
    columns = ('id', 'question')
    headers = ('id', 'question')
    directory = 'polls'

    def get_query(self, offset=None, limit=None):
        qs = Poll.objects.all()

        if not offset is None and not limit is None:
            return qs[offset:limit]

        elif limit:
            return qs[:limit]

        elif offset:
            return qs[offset:]

        return qs

    def get_count(self):
        return Poll.objects.count()

最后一步是在您的Django设置中的DATA_EXPORTER_CHANNELS中注册此导出器

DATA_EXPORTER_CHANNELS = {
    'polls': 'polls.exports.PollExport'
}

现在,您可以使用django-data-exporter提供的celery任务,如下所示

from data_exporter.tasks import builder
builder.delay('polls', 'csv')

第一个参数是您的通道名称,第二个参数是所需的格式。

如前所述,我们使用美丽的tablib库来导出您的数据,因此如您所理解的,我们支持此库提供的所有格式。

配置

DATA_EXPORTER_CHANNELS

所有已注册的通道。

DATA_EXPORTER_DIRECTORY

用于导出数据使用的目录。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

django-data-exporter-0.2.tar.gz (5.8 kB 查看哈希值)

上传时间 源代码

支持者