A django package to export data in a csv with File export.
Project description
# CSV Exporter
This Django package is a model exporter that can be run in a delayed task and emails a link to the resulting zip file containing a csv and all files.
## How to use
### To install the package
```
pip install django-csv-exporter
```
### To use the package
```
def export(query_or_queryset, attributes, callback=None, timedelta=datetime.timedelta(days=2)):
```
```
from datetime import timedelta
from functools import partial
from csv_exporter import export, send_email_to_user
users = UserProfile.objects.filter(team='myteam', active=True)
callback = partial(send_email_to_user, ['email1@gmail.com', 'email2@gmail.com'])
zip_url = export(users, ('full_name', 'profile_picture', 'team.name', 'date_joined.isoformat'), callback, timedelta(days=2))
```
The function `send_email_to_user` is a helper function to send the zip_url to the users. The callback to export needs to accept the parameters (zip_url, timedelta). Timedelta is a length of time the url is valid for. Expiration works only for django-storages using s3-boto, otherwise the regular url is returned.
### With Django RQ
```
import django_rq
django_rq.enqueue(export, users, ('full_name', 'profile_picture', 'team.name', 'date_joined.isoformat'), callback, timedelta(days=2))
# To save memory in redis you can also pass just the query instead of the QuerySet/list
django_rq.enqueue(export, users.query, ('full_name', 'profile_picture', 'team.name', 'date_joined.isoformat'), callback, timedelta(days=2))
```
This Django package is a model exporter that can be run in a delayed task and emails a link to the resulting zip file containing a csv and all files.
## How to use
### To install the package
```
pip install django-csv-exporter
```
### To use the package
```
def export(query_or_queryset, attributes, callback=None, timedelta=datetime.timedelta(days=2)):
```
```
from datetime import timedelta
from functools import partial
from csv_exporter import export, send_email_to_user
users = UserProfile.objects.filter(team='myteam', active=True)
callback = partial(send_email_to_user, ['email1@gmail.com', 'email2@gmail.com'])
zip_url = export(users, ('full_name', 'profile_picture', 'team.name', 'date_joined.isoformat'), callback, timedelta(days=2))
```
The function `send_email_to_user` is a helper function to send the zip_url to the users. The callback to export needs to accept the parameters (zip_url, timedelta). Timedelta is a length of time the url is valid for. Expiration works only for django-storages using s3-boto, otherwise the regular url is returned.
### With Django RQ
```
import django_rq
django_rq.enqueue(export, users, ('full_name', 'profile_picture', 'team.name', 'date_joined.isoformat'), callback, timedelta(days=2))
# To save memory in redis you can also pass just the query instead of the QuerySet/list
django_rq.enqueue(export, users.query, ('full_name', 'profile_picture', 'team.name', 'date_joined.isoformat'), callback, timedelta(days=2))
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-csv-exporter-1.2.tar.gz
.
File metadata
- Download URL: django-csv-exporter-1.2.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6861a2cfe1614115b3fff87734a1851fd98e99310aab66fb79ab9a337e01a74 |
|
MD5 | 597d67cab78393653d120de4e919d472 |
|
BLAKE2b-256 | 59c122a001b3c52ecda330f5ea792fb4d9b420cec4f44b5862af4fd7e2a50c51 |
File details
Details for the file django_csv_exporter-1.2-py2.py3-none-any.whl
.
File metadata
- Download URL: django_csv_exporter-1.2-py2.py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c926a350b0d1ecc1b228538a8d7151abf68805ada3434145a961c934c6ca2c12 |
|
MD5 | 0d73646214f7101f752ad1b5a79c197a |
|
BLAKE2b-256 | d3b25d93272a6726ccb0a1bba01c1c34cfb9d6109a2113dc4768262f5113d953 |