其他
上面我们使用DRF,并且也用了看起来复杂的YourModelListSerializer这种复杂的概念,主要目的是让大家知道DRF的方式,至于普通使用Django其实我们完全可以把renderer.render(data)换为上一篇文章
(writer.writerow(row) for row in rows) 这种形势。
关于CSV我们还可以用Django模板形式进行,和我们用rest_framework_csv模块思路差不多
简单给一个官方案例:
csv_data = (
('First row', 'Foo', 'Bar', 'Baz'),
('Second row', 'A', 'B', 'C', '"Testing"', "Here's a quote"),
)
t = loader.get_template('my_template_name.txt') # 定义模板代码
c = Context({
'data': csv_data,
})
response.write(t.render(c))
return response
虽然思路相似,但过程实现会麻烦较多,你要去切换模板代码书写,渲染,不推荐这种方式。
最后关于CSV我们就介绍到这里,结合上一篇主要两种方式:
普通CSV导出+Celery Beat定时导出
Django + DRF + 实时导出
原理都是Python内置模块CSV的一些变换,只是结合第三库,让我们操作更快更方便起来。 |