Django中处理CSV的实用工具
项目描述
包含CSV交互的辅助器。
有两个主要用途
运行带有导入器列表的导入命令
导出流式CSV响应导出
示例导入
from django_csv_utils import CSVImportException, ImportCommand, Importer
from users.models import User
class UserImporter(Importer):
"""Imports User objects from a CSV."""
header = [
"first_name",
"last_name",
"email",
]
def import_row(self, row):
errors = []
first_name = row.get("first_name", "")
last_name = row.get("last_name", "")
email = self.get_str_errblank(row, "email", errors).lower()
if User.objects.filter(email=email).exists():
errors.append("The email {} is already in use".format(email))
if errors:
raise CSVImportException(', '.join([str(e) for e in errors]))
new_user = User.objects.create(
email=email, first_name=first_name, last_name=last_name)
return "Imported {0}".format(new_user.get_full_name())
class Command(ImportCommand):
imports = {'users': UserImporter}
示例StreamingHTTPResponse
from django_csv_utils import StreamingCSVView
from users.models import User
class UserCSVView(StreamingCSVView):
"""Give the list of users."""
header = [
'fist_name',
'last_name',
'email',
]
def get_queryset(self):
"""Return the right list of users."""
return User.objects.filter(is_active=True, is_superuser=False)
def get_row(self, item):
return (
item.first_name,
item.last_name,
item.email,
)
项目详情
关闭
django-csv-utils-1.0.2.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | db5f71be39ac863de8735848dd8e0e37a974e19f6c5ee70a824a1f33960d8645 |
|
MD5 | cec20c1dfcc34861d0a3504b54ab2531 |
|
BLAKE2b-256 | 157faf938dc85f149faa818749c6bc13982e15dc3013cb8482eccfc2918993aa |