📅  最后修改于: 2020-12-31 00:43:00             🧑  作者: Mango
settings.py文件包含所有项目设置以及数据库连接详细信息。默认情况下,Django与SQLite,数据库一起使用,并允许配置其他数据库。
数据库连接需要所有连接详细信息,例如数据库名称,用户凭据,主机名驱动器名称等。
为了与MySQL连接,使用django.db.backends.mysql驱动程序在应用程序和数据库之间建立连接。让我们来看一个例子。
我们需要在设置文件中提供所有连接详细信息。我们项目的settings.py文件包含数据库的以下代码。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'djangoApp',
'USER':'root',
'PASSWORD':'mysql',
'HOST':'localhost',
'PORT':'3306'
}
}
提供详细信息后,请使用migration命令检查连接。
$ python3 manage.py migrate
此命令将为admin,auth,contenttypes和session创建表。参见示例。
现在,访问MySQL数据库并从数据库列表中查看该数据库。创建的数据库包含下表。
注意:如果数据库连接失败,它将引发错误:django.db.utils.OperationalError:(1045,“拒绝用户'root'@'localhost'的访问(使用密码:是)“)
好了,到这里为止,我们已经学习了将Django应用程序连接到MySQL数据库。接下来,我们将看到如何使用模型创建表。
每个Django模型都映射到数据库中的一个表。因此,在创建模型之后,我们需要迁移它。让我们来看一个例子。
假设我们在models.py文件中有一个模型类Employee,其中包含以下代码。
// models.py
from django.db import models
class Employee(models.Model):
eid = models.CharField(max_length=20)
ename = models.CharField(max_length=100)
econtact = models.CharField(max_length=15)
class Meta:
db_table = "employee"
Django首先创建一个包含表结构详细信息的迁移文件。要创建迁移,请使用以下命令。
$ python3 manage.py makemigrations
创建的迁移文件位于migrations文件夹中,并包含以下代码。
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Employee',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('eid', models.CharField(max_length=20)),
('ename', models.CharField(max_length=100)),
('econtact', models.CharField(max_length=15)),
],
options={
'db_table': 'employee',
},
),
]
现在,迁移以将更改反映到数据库中。
$ python3 manage.py migrate
再次检查数据库,现在它包含employee表。
请参见,数据库中存在一个表。好了,我们已经成功地在Django应用程序和MySQL数据库之间建立了连接。