从您的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 |