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.
[codesyntax lang=”bash”]
django-admin startproject mysite
[/codesyntax]
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.
[codesyntax lang=”python”]
import pymysql pymysql.install_as_MySQLdb()
[/codesyntax]
Next declare the default database description to point to the correct MySQL database by incorporating the following lines.
[codesyntax lang=”python”]
'ENGINE': 'django.db.backends.mysql', 'NAME': 'pblog', 'USER' : 'bcs', 'PASSWORD' : 'YourPassword', 'HOSTS' : 'localhost', 'PORT' : '3306',
[/codesyntax]
After the chages are incorporated the resulting settigs.py file reflects the following.
[codesyntax lang=”python”]
""" Django settings for mysite project. Generated by 'django-admin startproject' using Django 1.11.8. For more information on this file, see https://docs.djangoproject.com/en/1.11/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/1.11/ref/settings/ """ import os import pymysql pymysql.install_as_MySQLdb() # 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 ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'mysite2.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], '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 = 'mysite2.wsgi.application' # Database # https://docs.djangoproject.com/en/1.11/ref/settings/#databases 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 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/ 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/1.11/howto/static-files/ STATIC_URL = '/static/'
[/codesyntax]
We should start the server to determine the correctness of our configuration.
[codesyntax lang=”bash”]
python manage.py runserver
[/codesyntax]
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.
[codesyntax lang=”bash”]
python3 manage.py migrate
[/codesyntax]
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.