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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django_namespaces-0.0.19-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3b78f7d14111061615a9c28bec811aa31a77f0476c9f13d626ef2ac719f926e |
|
MD5 | c569da32152d282bbce483c900ba8dec |
|
BLAKE2b-256 | d97f72549b829edd0bba0e7ae7c3ac3ad9b742c6b3072883fc652d5fee49518e |