Skip to main content

DJango with Code Dependency Injection using PyCDI

Project description

https://travis-ci.org/ettoreleandrotognoli/django-pycdi.svg?branch=master https://codecov.io/gh/ettoreleandrotognoli/django-pycdi/branch/master/graph/badge.svg https://badge.fury.io/py/django-pycdi.svg https://img.shields.io/pypi/dm/django-pycdi.svg

A middleware to integrate PyCDI with Django.

See the code of conduct.

Install

Install pypi version

pip install django_pycdi

Install lastest version

pip install git+https://github.com/ettoreleandrotognoli/django-pycdi.git

Usage

Add middleware to settings.py:

MIDDLEWARE += ['django_pycdi.middlewares.CDIMiddleware']

Add inject decorator to your views:

With Python 2:

from random import random
from django.http import HttpResponse
from pycdi import Inject, Producer
from pycdi.utils import Singleton


@Singleton()
class MySingleton():
    pass

@Producer(float)
def get_a_float():
    return random()

@Inject(singleton=MySingleton,number=float)
def view(request,singleton,number):
    return HttpResponse('...')

In the demo3 folder has a django demo project using python2 with more examples.

With Python 3:

from random import random
from django.http import HttpResponse
from pycdi import Inject, Producer
from pycdi.utils import Singleton

@Singleton()
class MySingleton():
    pass

@Producer()
def get_a_float() -> float:
    return random()

@Inject()
def view(request,singleton:MySingleton,number:float):
    return HttpResponse('...')

In the demo3 folder has a django demo project using python3 with more examples.

See more ways to use PyCDI in its page.

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-pycdi-0.1.0.tar.gz (2.8 kB view details)

Uploaded Source

File details

Details for the file django-pycdi-0.1.0.tar.gz.

File metadata

File hashes

Hashes for django-pycdi-0.1.0.tar.gz
Algorithm Hash digest
SHA256 66268ea803420b542e6dd68029505a180bf4cb531e511a88d58d874fed5fac33
MD5 d462b16fb2473c7df8d69225323f844a
BLAKE2b-256 6e23d5e883d13f9175844999c541b2d3367a08e3a2a2ac31ab02c454780c2843

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