Django 如何将MySQL连接到Django

Django 如何将MySQL连接到Django

数据库是Web应用程序中存储和组织数据的基本组件。当我们开发应用程序/网站时,我们需要选择一个合适的数据库,使其更具互动性。

Django带有内置的SQLite数据库。然而,我们可以在Django中使用各种数据库。以下是Django支持的数据库列表。

还有许多由第三方提供的数据库后端。Django的中间件允许我们与数据库进行通信。在本教程中,我们将学习如何将MySQL数据库连接到我们的Django应用程序。

先决条件

  • 必须安装MySQL服务器5.7+
  • 必须安装Python 3.0+

我们假设您已经在本地计算机上安装了MySQL服务器。如果尚未安装,则可以从MySQL官方网站下载安装。

实现

我们使用以下步骤在Django和MySQL之间建立连接。

第1步:创建虚拟环境并设置Django项目

首先,我们将在虚拟环境中创建并安装Django。由于这会延长教程,我们跳过此过程。我们使用以下命令创建新项目。

django-admin startproject MyProject .

命令末尾的句号 (.) 表示我们正在工作目录中创建项目。如果不提供句号,项目将被创建在名为 MyProject 的新目录中,并且在该目录中包含我们实际的 Django 文件。

现在使用下面的命令启动服务器。

python manage.py runserver

终端将显示链接http://127.0.0.1:8000,请访问此链接。

第2步 – 创建新数据库

我们可以使用两种方式创建数据库 – MySQL Workbench和MySQL shell。MySQL Workbench是MySQL数据库的图形用户界面工具,提供SQL开发、数据建模和服务器管理等功能。我们将使用更适合学习目的的MySQL shell。

  • 连接MySQL服务器

Django 如何将MySQL连接到Django

  • 使用SQL查询创建数据库

使用 create database my_database 查询。它将创建新的数据库。

Django 如何将MySQL连接到Django

我们可以通过show databases查询来检查数据库。

mysql> show databases;
+--------------------------------------+
| Database                                   |
+--------------------------------------+
| information_schema              |
| my_database                     |
| mysql                                          |
| performance_schema             |
| sys                                               |
+---------------------------------------+
5 rows in set (0.05 sec)

它显示了我们MySQL服务器中所有可用的数据库。

第3步: 更新settings.py

一旦我们完成创建数据库,我们必须使用以下设置配置更新settings.py文件中的数据库部分。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'my_database',
        'USER': 'root',
        'PASSWORD': 'your_password',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"
        }
    }
}

让我们了解一下我们上面所做的事情。

  • 首先,我们将’django.db.backends.sqlite3’替换为’django.db.backends.mysql’。这基本上表示我们将SQLite转换为MySQL数据库。
  • NAME 表示我们想要使用的数据库名称。
  • USER 是具有访问数据库权限并充当数据库管理员的MYSQL用户名。
  • PASSWORD 是数据库的密码。它将在MySQL安装时创建。
  • ‘HOST’是’127.0.0.1’,’PORT’ ‘3306’表示 MySQL数据库 托管在主机名为’ 0.0.1 ‘的服务器上,并监听指定的 端口号3306 ‘。
  • 在最后一行中,我们使用SET sql_mode = ‘STATIC_TRANS_TABLES’ ,用于防止无效或缺失的值被存储在数据库中通过INSERT和UPDATE语句。

第4步-安装mysqlclient包

在安装mysqlclient包之前,让我们了解一下mysqlclient是什么以及为什么我们使用它。mysqlclient是Python与MySQL之间的接口,允许Python项目与MySQL服务器建立连接。

因此,有必要安装mysqlclient包来建立MySQL和Django之间的连接。要安装,请在工作目录中使用以下命令。

pip install mysqlclient

第5步 – 运行迁移命令

现在,我们已经准备好在新创建的数据库中迁移或创建表了。在这最后一步中,我们将运行迁移命令,它将在 my_database 数据库中创建现有的表。

python manage.py migrate

在运行此命令后,Django将自动创建所需的表,例如 auth_group, auth_user, auth_permission等 。它还将创建在models.py文件中定义的表。

mysql> use my_database;

数据库已更改

mysql> show tables;

+-------------------------------------------------------+
| Tables_in_my_database                               |
+-------------------------------------------------------+
| auth_group                                                      |
| auth_group_permissions                               |
| auth_permission                                             |
| auth_user                                                         |
| auth_user_groups                                           |
| auth_user_user_permissions                        |
| django_admin_log                                           |
| django_content_type                                      |
| django_migrations                                           |
| django_session                                                |
| myweatherapp_profile                                   |
+---------------------------------------------------------+
11 rows in set (0.05 sec)

Django 如何将MySQL连接到Django

结论

在本教程中,我们讨论了如何在Django中使用MySQL数据库。尽管Django内置了SQLite数据库,但有时它无法满足要求,因此我们可以连接其他各种数据库。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程