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.

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.0.0.tar.gz (2.5 kB view hashes)

Uploaded Source

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