Django backend for Cloudflare D1 and Durable Objects
Project description
django-cf
Django database engine for Cloudflare D1 and Durable Objects
Installation
pip install django-cf
Using with D1
The D1 engine uses the HTTP api directly from Cloudflare, meaning you only need to create a new D1 database, then
create an API token with D1 read
permission, and you are good to go!
But using an HTTP endpoint for executing queries one by one is very slow, and currently there is no way to accelerate it, until a websocket endpoint is available.
The HTTP api doesn't support transactions, meaning all execute queries are final and rollbacks are not available.
DATABASES = {
'default': {
'ENGINE': 'django_d1',
'CLOUDFLARE_DATABASE_ID': '<database_id>',
'CLOUDFLARE_ACCOUNT_ID': '<account_id>',
'CLOUDFLARE_TOKEN': '<token>',
}
}
The Cloudflare token requires D1 Edit permissions.
A simple tutorial is available here for you to read.
Using with Durable Objects
The DO engine, requires you to deploy workers-dbms on your cloudflare account. This engine uses a websocket endpoint to keep the connection alive, meaning sql queries are executed way faster.
workers-dbms have an experimental transaction support, everything should be working out of the box, but you should keep an eye out for weird issues and report them back.
DATABASES = {
'default': {
'ENGINE': 'django_dbms',
'WORKERS_DBMS_ENDPOINT': '<websocket_endpoint>', # This should start with wss://
'WORKERS_DBMS_ACCESS_ID': '<access_id>', # Optional, but highly recommended!
'WORKERS_DBMS_ACCESS_SECRET': '<access_secret>', # Optional, but highly recommended!
}
}
Limitations
When using D1 engine, queries are expected to be slow, and transactions are disabled.
Read all Django limitations for SQLite databases here.
Project details
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_cf-0.0.17.tar.gz
.
File metadata
- Download URL: django_cf-0.0.17.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df940823da9927ceaecb504c803eaaa05f4d74793eebcc0ccb02d8abb442c6a8 |
|
MD5 | b143e04f2c57ec764b944d46687e8e04 |
|
BLAKE2b-256 | c458fe175f06959a62ab9add9b5ba74922cfb8b367be33c43e817cd61ccc0420 |
File details
Details for the file django_cf-0.0.17-py3-none-any.whl
.
File metadata
- Download URL: django_cf-0.0.17-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58d434991b0286bcc3102a9350b7a84329f7c3abca6674e7ead09bec579da27d |
|
MD5 | 9e621a1a8d8886bbbf027ab81bace1e0 |
|
BLAKE2b-256 | bee10ed1825c18baea2389908abc949b7546c964da3e6cc41c03bdc4a6ba5301 |