Skip to main content

a generic app to provide a way to handle database binary data in django

Project description

https://drone.io/bitbucket.org/slafs/django-binaryfield/status.png

A generic app to provide a way to handle database binary data in django.

Introduction

This is a total rip-off of BinaryField class from Django 1.6+ sourcecode with some tweaks to make it work under Django 1.4+.

Installation

pip install django-binaryfield

Usage

Use BinaryField to bind your binary database columns on a django model. Like so:

from binaryfield import BinaryField

class ExampleModel(models.Model):

    short_data = BinaryField(max_length=10, default=b'\x08')
    data = BinaryField()

Configuration

syncdb

Django-binaryfield works out-of-the-box with existing binary database columns that are correctly mapped in your models. If you want BinaryField to work with syncdb management command there’s one setting called BINARYFIELD_HACK_ENGINES that can be used to hack Django database backend. Use it like this:

BINARYFIELD_HACK_ENGINES = (
    'django.db.backends.sqlite3',
)

It’s a list of django backends (as an “importable” strings) to mangle in order to syncdb could work properly. Did I mention that it is a hack?

Oracle issues

There are some issues with Oracle when handling parameteres in a query in Django < 1.6. You can see this link (https://github.com/django/django/commit/8aefd30379eba9aa7e5afcc69cc352adf0d23489) to see what changed in django.db.backends.oracle.base.OracleParam class regarding this feature.

There are two settings to control a fix to this issue:

  • BINARYFIELD_HACK_ORACLE_PARAM - determines whether or not apply the fix - Default: False

  • BINARYFIELD_HACK_ORACLE_PARAM_BACKENDS - an iterable of backend engines as an “importable” strings to apply the fix. - Default: [ settings.DATABASES['default']['ENGINE'] ]

TODO

  • Some more tests maybe?

  • An example view to show how to serve a file from database

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-binaryfield-0.4.0.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

django_binaryfield-0.4.0-py2.py3-none-any.whl (7.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-binaryfield-0.4.0.tar.gz.

File metadata

File hashes

Hashes for django-binaryfield-0.4.0.tar.gz
Algorithm Hash digest
SHA256 43b77383f1e993e6120a9d532e957b5834970cfb04a5844e486b6c7caaba0de9
MD5 32a4487ac14cefdf3382ab59401134e9
BLAKE2b-256 e10631cff6d31b7450dd58992866970db3daeabd5e815c3dc8dfa9a2d28797e7

See more details on using hashes here.

File details

Details for the file django_binaryfield-0.4.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_binaryfield-0.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d8afadc0a7e9d6c71bf0b23c3b587023d6cae7ae8d220c664d5ee2d27b73563a
MD5 17217f5b2bc81574f49ff2e37e937340
BLAKE2b-256 aa00963f75505576c201bcbce0499206ffc1395865bf44d95e08b3096386eff8

See more details on using hashes here.

Supported by

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