Django 数据库连接

Django 数据库连接

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'
    }
}

提供详细信息后,使用迁移命令检查连接。

$ python3 manage.py migrate

该命令将为admin、auth、contenttypes和sessions创建表。请参考示例。

Django 数据库连接

现在,访问MySQL数据库并从数据库列表中查看数据库。创建的数据库包含以下表。

Django 数据库连接

注意: 如果数据库连接失败,将会抛出一个错误:django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")

迁移模型

好的,到此为止,我们已经学会了将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

Django 数据库连接

创建的迁移文件位于 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

Django 数据库连接

再次检查数据库,现在它包含了 employee 表。

Django 数据库连接

看,数据库中有一张表。好的,我们已经成功建立了Django应用程序和MySQL数据库之间的连接。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程