Skip to main content

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

django_cf-0.0.15.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_cf-0.0.15-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file django_cf-0.0.15.tar.gz.

File metadata

  • Download URL: django_cf-0.0.15.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for django_cf-0.0.15.tar.gz
Algorithm Hash digest
SHA256 0729ca845edea8466aa48a5cc54e74fe46fa1cdeacb100f0f9cffb94d68809a7
MD5 e1a55aa48b0fad865dc9b5b680330e2f
BLAKE2b-256 6cf70f57fb1a23e992eb33dbcfa647449ac7f91860cf9586ef3861f4c224d46f

See more details on using hashes here.

File details

Details for the file django_cf-0.0.15-py3-none-any.whl.

File metadata

  • Download URL: django_cf-0.0.15-py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for django_cf-0.0.15-py3-none-any.whl
Algorithm Hash digest
SHA256 0489f0df4a522b4b71c363a64cc2444c5b58a0f8c2e061908f33c49bdfe5ecc9
MD5 96065dc187729eb73b929224f453c325
BLAKE2b-256 368494625d5e46ff836851650f9540d4398d95e20cca867e3e119cd490f2b1b8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page