Home  >  Article  >  Backend Development  >  How to configure mysql database in Django

How to configure mysql database in Django

不言
不言Original
2018-05-05 14:39:051780browse

This article mainly introduces the detailed steps for Django to configure mysql database, which has certain reference value. Interested friends can refer to it

The Django project uses the sqlite database by default, but I If you want to use mysql database, how should you configure it?

Django connects to the mysql database through the configuration of the root module. In the configuration file settings.py of the project root module, we can query the following DATABASES configuration information:

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
  }
}

Explain the meaning of the above code:

ENGINE: used for the configuration of a specific database engine. Different database fields are different. Common ones are:

django.db.backends.postgresql # PostgreSQL
django.db.backends.mysql    # mysql 
django.db.backends.sqlite3   # sqlite 
django.db.backends.oracle   # oracle

#NAME: refers to the name of the database to be connected

The django documentation states that if you want to use mysql, you need to install Python's db API DRIVER, that is Database interface driver, there are three commonly used database driver interfaces, mysqldb, pymysql, mysqlclient. However, MYSQLdb does not support python3, and it is officially recommended to use mysqlclient. Therefore, this article also uses mysqlclient. Okay, without further ado, let’s start today’s Django configuration mysql journey.

Step one:Download mysqlclient

pip install mysqlclient

Step 2: Create a database. For example, I created a blog database. You can create it with a command, or you can use a visual tool (Navicat Premium) to create it. The command to create a database code:

CREATE DATABASE blog(database_name) CHARACTER SET UTF8; 
   #指定数据库的编码utf8

Step 3: Configure the mysql connection parameters in settings.py, as follows:

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'blog',
  'USER':'root',
  'PASSWORD':'kong1234,',
  'HOST':'127.0.0.1',
  'PORT':'3306',
  }
}

  • USER: The username for database login, mysql is usually root

  • PASSWORD: The password for login to the database must be the password corresponding to the USER user

  • HOST: Since general databases have a C/S structure, the location of the database server must be specified. Generally, the database server and client are on the same host, so the default is usually Fill in 127.0.0.1

  • PORT: database server port, mysql default is 3306

  • HOST and PORT can be left blank, use the default configuration , but if you change the default configuration, you need to fill in the changed

. In fact, this is basically done. To better illustrate, let’s give an example to demonstrate. Let’s do some data manipulation.

Step 4: Create the model class in models.py in the application you created.

For example, I create a class in models.py under my blog application. The code is as follows:

from __future__ import unicode_literals
from django.db import models


class Article(models.Model):
  title = models.CharField(max_length=32, default='Title')
  content = models.TextField(null=True)

## Five steps: Map fields into data tables and execute the following command

python manage.py makemigrations (应用名,选写)
python manage.py migrate (应用名,选写)

Step six: Execute python manage.py sqlmigrate application name file id

View sql statement

python manage.py sqlmigrate blog 0001

For specific database operations in Django, please refer to the next blog post.

Related recommendations:


Detailed explanation of the use and source code analysis of Django’s admin component

The above is the detailed content of How to configure mysql database in Django. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn