从您的Django模型异步导出数据
项目描述
django-data-exporter是一个简单的Django应用程序,用于从您的模型异步导出数据。
它基于Celery (>= 2.3)来使用Chords和tablib以多种格式导出您的数据。
安装
使用方法
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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a101c7d71b1c7b0fad66aed9a8ad2abc5a45b410a38b1e21967f371a5df5171e |
|
MD5 | 789cec4eb6ddc056a627c1a5a38ddb0b |
|
BLAKE2b-256 | d145a9f128283cf7599c7bd777f0050617cb4ef444c7eb03413770516b709ae5 |