Fast Paginator for Django
Simple speedy pagination over your large database tables.
Features
Simple Integration
FastPaginator API is compatible with Django's built-in pagination library. Only change your import statements then you're ready.
Better SQL Queries
Django's built-in pagination system builds SQL queries that have offset and limit clauses. FastPagination does not use them.
Built-in Cache System
FastPaginator has a built-in cache system. It does not cache QuerySets but caches primary keys of object lists. This provides speedup for pagination progress.
Quick Start
- Add "fast_pagination" to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [
...
'fast_pagination'
]
- In Django settings, you can set FAST_PAGINATION_TIMEOUT variable to invalidate cache. Default value is 1 hour.
- In Django settings, you can set FAST_PAGINATION_PREFIX variable to use in cache keys. Default values is 'fastpagination'.
- Import FastPaginator like this:
from fast_pagination.helpers import FastPaginator
- Then, you are ready. All you have to do is give your queryset and number of entries when creating FastPaginator object.
To Run Tests
- Create a dummy project.
- Run following command.
./manage.py test fast_pagination.tests
Benchmark
This benchmark is executed on Postgres9.6 with a table that has 1000000 rows, and fetched only one field. Results can be seen below.
| Paginator | Min | Max | Mean | StdDev | Median |
|---|---|---|---|---|---|
| Django | 93.5535 (1.53) | 95.7217 (1.54) | 94.7340 (1.53) | 0.9755 (2.32) | 94.9046 (1.54) |
| FastPaginator | 61.1488 (1.0) | 62.3316 (1.0) | 61.7489 (1.0) | 0.4205 (1.0) | 61.7649 (1.0) |
You can also run benchmark tests following instructions:
- Run migrations if app needs using
./manage.py migrate
- Call generate_users command from command line using
./manage.py generate_users 1000000
- Run tests using
pytest fast_pagination/tests.py
Metadata
Release files for django-fast-paginator 1.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django-fast-paginator-1.0.4.tar.gz | 4.3 kB | Details |
Release files / django-fast-paginator-1.0.4.tar.gz
| Download URL | django-fast-paginator-1.0.4.tar.gz |
|---|---|
| Size | 4.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
60a7c5ed99a530f437d2cac14d271a360a9842ae7553b2d911325baac06412ed
|
|
BLAKE2b-256 checksum How to use checksums |
e86e1239568717b0a264e941b01bce4bdfcde3d369bd689e3fde4fdac4691801
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.5
|