Users Online

· Guests Online: 39

· Members Online: 0

· Total Members: 188
· Newest Member: meenachowdary055

Forum Threads

Newest Threads
No Threads created
Hottest Threads
No Threads created

Latest Articles

Articles Hierarchy

Django Tutorial

Django Environment Variables

Django Environment Variables

Introduction to Django Environment Variables

Environment variables allow setting the Django application configurations. So, when configuration level values need to be updated, the environment level variable plays a significant role. The key aspect of these environment variables is their capability to set the configurations for the elements. Moreover, these configurations are developed so that values can be well hidden. Hence, this helps to hide the values and secure the variable and associated configuration items. Some key environment-level variables are discussed below in the upcoming sections of the article.

How do Environment variables work?

Below are the environment variables in the Django application,

1. DATABASE_URL: The database url variable is useful in supplying the database connection information.

DATABASE_URL= postgres://user:%2311pass@127.0.0.1:3306/dbname

2. EMAIL_CONFIG: The database url variable is useful in supplying the database connection information.

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_PORT = 597
EMAIL_HOST_USER = #email id of sender
EMAIL_HOST_PASSWORD = #password associated to this email id

3. SQLite URLs: This is another exciting aspect to be discussed and considered for the open discussion of how environment-level variables help set the values. File-oriented database connectivity can be established through SQLITE URLS; from the database perspective, the corresponding format of the URL can be used for not considering the hostname and mentioning the portion of the “file” as the name of the database.

4. Nested lists: Nested lists are useful in applications that involve DJANGO ADMINS entries; these entries can be sophisticatedly managed using the nested lists section.

# DJANGO_ADMINS=John:john@admin.com,Jane:jane@admin.com
ADMINS = [x_value.split(':') for x_value in env.list('DJANGO_ADMINS')]
# or use more specific function
from email.utils import getaddresses
# DJANGO_ADMINS=Full Name <email-with-name@example.com>,anotheremailwithoutname@example.com
ADMINS = getaddresses([env('DJANGO_ADMINS')])

5. Multiline value: It allows the set of variable values in more than one line. This is another exciting aspect to be discussed and considered for the open discussion of how environment-level variables are useful for setting the values. So this makes the setting of variable values to be extended for more than a single line involved. Hence multiple lines will be associated and used. This allows various lines to be placed as a part of the process.

6. proxy value: This is an exciting aspect; applications allow prefixing the variable value. This means that the value of a specific variable can be prefixed in Django. This is another exciting aspect to be discussed and considered for the open discussion of how the Django environment-level variables are useful for setting the values.

Examples

1. Settings.py:

Code:

from pathlib import Path
import os
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
Template_DIR = os.path.join(BASE_DIR,'Templates/Mainpage')
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-3w2sc%ysj3y-v4&kdl7@o$fz_f5(-d0b(cra_rdk*m7n$+w^8s'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'matrimony_pages',
]
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.cache.UpdateCacheMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.cache.FetchFromCacheMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'Matrimony.urls'
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [Template_DIR,],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
WSGI_APPLICATION = 'Matrimony.wsgi.application'
# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}
CACHES = { 'default': {
        'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
    } }
# Password validation
# https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]
# Internationalization
# https://docs.djangoproject.com/en/3.2/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
STATIC_URL = '/static/'
MEDIA_URL = '/images/'
#STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), ]
#print(STATICFILES_DIRS)
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/images')
#print(STATIC_ROOT)
# Default primary key field type
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

2. Changes in Models.py file:

Code:

from django.db import models
# Model variables
# Create your models here.
class Object(models.Model):
    Environment_Variable_Example_name = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_thegai = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_State =  models.CharField(max_length=50,null=True)
    Environment_Variable_Example_District = models.CharField(max_length=50,null=True)
    Environment_Variable_Example_Address = models.TextField(null=True)
    Environment_Variable_Example_Phone = models.BigInteger_Example_Field(null=True)
    Environment_Variable_Example_profession = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_salary = models.BigInteger_Example_Field(null=True)
    Environment_Variable_Example_Under_Graduation_Degree = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_Under_Graduation_college = models.CharField(max_length=400,null=True)
    Environment_Variable_Example_Post_Graduation_Degree = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_Post_Graduation_college = models.CharField(max_length=400,null=True)
    Environment_Variable_Example_Rasi = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_Phone = models.BigInteger_Example_Field(null=True)
    Environment_Variable_Example_profession = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_salary = models.BigInteger_Example_Field(null=True)
    Environment_Variable_Example_Under_Graduation_Degree = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_Under_Graduation_college = models.CharField(max_length=400,null=True)
    Environment_Variable_Example_Post_Graduation_Degree = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_Post_Graduation_college = models.CharField(max_length=400,null=True)
    Environment_Variable_Example_Rasi = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_Phone = models.BigInteger_Example_Field(null=True)
    Environment_Variable_Example_profession = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_salary = models.BigInteger_Example_Field(null=True)
    Environment_Variable_Example_Under_Graduation_Degree = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_Under_Graduation_college = models.CharField(max_length=400,null=True)
    Environment_Variable_Example_Post_Graduation_Degree = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_Post_Graduation_college = models.CharField(max_length=400,null=True)
    Environment_Variable_Example_Rasi = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_Nakshatra = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_Post_Graduation_Degree = models.CharField(max_length=200,null=True)
    Environment_Variable_Example_Post_Graduation_college = models.CharField(max_length=400,null=True)
    Environment_Variable_Example_Rasi = models.CharField(max_length=200,null=True)
    def __str__(self):
        return self.name
]

Ex: views.py

@login_required
def Environ_var_page(request,pk):
      dict_var_ = {}
      Environ_var_name =  Key_details.name
      Environ_var_Age =  Key_details.age
      Environ_var_Thegai =  Key_details.thegai
      Environ_var_state =  Key_details.State
      Environ_var_district =  Key_details.District
      Environ_var_Address =  Key_details.Address
      Environ_var_Phone =  Key_details.Phone
      Environ_var_Profession =  Key_details.profession
      Environ_var_Salary =  Key_details.salary
      Environ_var_UG =  Key_details.Under_Graduation_Degree
      Environ_var_UGC =  Key_details.Under_Graduation_college
      Environ_var_PG =  Key_details.Post_Graduation_Degree
      Environ_var_PGC =  Key_details.Post_Graduation_college
      Environ_var_UG =  Key_details.Under_Graduation_Degree
      Environ_var_UGC =  Key_details.Under_Graduation_college
      Environ_var_PG =  Key_details.Post_Graduation_Degree
      Environ_var_PGC =  Key_details.Post_Graduation_college
      Environ_var_Rasi =  Key_details.Rasi
      Environ_var_Nakshatra =  Key_details.Nakshatra
      dict_var_['Age'] = Environ_var_Age
      dict_var_['name'] = Environ_var_name
      dict_var_['thegai'] = Environ_var_Thegai
      dict_var_['State'] = Environ_var_state
      dict_var_['district'] = Environ_var_district
      dict_var_['Address'] = Environ_var_Address
      dict_var_['Phone'] = Environ_var_Phone
      dict_var_['profession'] = Environ_var_Profession
      dict_var_['Under_Graduation_Degree'] = Environ_var_UG
      dict_var_['Under_Graduation_college'] = Environ_var_UGC
      dict_var_['Post_Graduation_Degree'] = Environ_var_PG
      dict_var_['Post_Graduation_college'] = Environ_var_PGC
      dict_var_['Rasi'] = Environ_var_Rasi
      dict_var_['Nakshatra'] = Environ_var_Nakshatra
      dict_var_['State'] = Environ_var_state
      dict_var_['district'] = Environ_var_district
      dict_var_['Address'] = Environ_var_Address
      dict_var_['Phone'] = Environ_var_Phone
      dict_var_['profession'] = Environ_var_Profession
      dict_var_['Under_Graduation_Degree'] = Environ_var_UG
      dict_var_['Under_Graduation_college'] = Environ_var_UGC
      dict_var_['Post_Graduation_Degree'] = Environ_var_PG
      dict_var_['Post_Graduation_college'] = Environ_var_PGC
      dict_var_['Rasi'] = Environ_var_Rasi
      dict_var_['Nakshatra'] = Environ_var_Nakshatra
      print(Key_details.Creator)
      print(dict_var_)
      return  render(request,'Profilepage.html',dict_var_)

Output:

Django

Conclusion

The above article depicts a clear idea of what environment variables are and how the environment variables work. More specifically, the use of Django Environ. It also mentions the different environment variables involved and how they can be used in Django, which are also explained with suitable examples.

Comments

No Comments have been Posted.

Post Comment

Please Login to Post a Comment.

Ratings

Rating is available to Members only.

Please login or register to vote.

No Ratings have been Posted.
Render time: 0.84 seconds
10,841,821 unique visits