BCS Create Django Site with MySQL Backend

For those times when Django site need to support MySQL this tutorial may be helpful.

The first task is to create the Django project. Go to the command prompt and issue the following command.

django-admin startproject mysite

The result may be observed in the following screen shot.

Next we should allow the MySQL connection.  Firs we need to import the MySQL interface by including the two statements below into settings.py for your project.

import pymysql 

Next declare the default database description to point to the correct MySQL database by incorporating the following lines.

'ENGINE': 'django.db.backends.mysql', 
  'NAME': 'pblog', 
  'USER' : 'bcs', 
  'PASSWORD' : 'YourPassword', 
  'HOSTS' : 'localhost', 
  'PORT' : '3306',

After the chages are incorporated the resulting settigs.py file reflects the following.

Django settings for mysite project.
Generated by 'django-admin startproject' using Django 1.11.8.
For more information on this file, see
For the full list of settings and their values, see
import os
import pymysql
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'r8=&&1s%@60c%&cffq(bb54%_=px-@z=z#(htd!)jo^ny8xy9j'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
# Application definition
ROOT_URLCONF = 'mysite2.urls'
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
WSGI_APPLICATION = 'mysite2.wsgi.application'
# Database
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'pblog',
        'USER' : 'bcs',
        'PASSWORD' : 'YourPassword',
        'HOSTS' : 'localhost',
        'PORT' : '3306',
# Password validation
# https://docs.djangoproject.com/en/1.11/ref/settings/#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/1.11/topics/i18n/
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/
STATIC_URL = '/static/'

We should start the server to determine the correctness of our configuration.

python manage.py runserver

Notice the server is running at the prescribed location.

The final step to this portion of the process is to migrate the database by issuing the following command.

python3 manage.py migrate

After the migration is successful you should have similar output messages in your terminal session.

Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.

Leave a Reply