Skip to main content

No project description provided

Project description

django-namespaces

Use namespaces in requests using Django.

Motivation

Google Cloud has an interest feature for namespacing projects. Namespacing can enable assets to be isolated from each other without needing to leverage subdomains and/or multiple databases (although you can use those too).

Installation

Use a virtual environment whenever using Python packages. The built-in venv module is great.

python3 -m venv venv
source venv/bin/activate
$(venv) python -m pip install django-namespaces --upgrade

Configure your Django Project

Create a Django Project

$(venv) mkdir -p src && cd src
$(venv) django-admin startproject cfehome .

Installed Apps

Add django_namespaces to your INSTALLED_APPS in settings.py:

INSTALLED_APPS = [
    ...
    'django_namespaces',
]

Update Middelware

Update MIDDLEWARE in settings.py to include NamespaceMiddleware:

MIDDLEWARE = [
    ...
    'django_namespaces.middleware.NamespaceMiddleware',
]

This gives us access to the request.namespace object in our views.

Basic Usage

import django_namespaces
django_namespaces.activate("hello-world")

This will add a namespace to the request object.

def my_hello_world_view(request):
    print(request.namespace) # <Namespace: hello-world>
    print(request.namespace.value) # hello-world
    return HttpResponse("Hello World") 

Optional Views

Using views are optional. You can also use the activate function to activate a namespace.

Update URLconf

Update urls.py to include namespaces.urls:

urlpatterns = [
    ...
    path('namespaces/', include('django_namespaces.urls')),
]

Create a Namespace

Create a namespace by visiting http://localhost:8000/namespaces/create/ and filling out the form.

Activate a Namespace

Activate a namespace by visiting http://localhost:8000/namespaces/ and hitting activate on your newly created namespace.

You can also use:

Update URLconf

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-namespaces-0.0.19.tar.gz (15.6 kB view hashes)

Uploaded Source

Built Distribution

django_namespaces-0.0.19-py3-none-any.whl (20.9 kB view hashes)

Uploaded Python 3

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