数据库是 Web 应用程序存储和组织数据的重要组成部分。每当我们开发应用程序/网站时,我们都需要选择合适的数据库以使其更具交互性。

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

  • PostgreSQL
  • MariaDB
  • MySQL
  • Oracle
  • SQLite

还有第三方提供的许多数据库后端。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 数据库的 GUI 工具,提供 SQL 开发、数据建模和服务器管理等功能。我们将使用MySQL shell,更推荐用于学习目的。

  • 连接MySQL服务器

1.png

  • 使用 SQL 查询创建数据库

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

2.png

我们可以通过显示数据库查询来检查数据库。

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 是 MySQL 的 Python 接口,允许 Python 项目连接到 MySQL 服务器。

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

pip install mysqlclient  

步骤 - 5 运行迁移命令

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

python manage.py migrate

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

mysql> 使用 my_database;

数据库已更改

mysql> 显示表;

+-------------------------------------------------------+  
| 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)  

3.png

结论

在本教程中,我们讨论了如何在 Django 中使用 MySQL 数据库。虽然Django自带了内置数据库SQLite,但有时它并不能满足要求。这样我们就可以连接各种数据库了。

标签: django语言, django教程, django技术, django学习, django学习教程, django下载, django开发, django入门教程, django进阶教程, django高级教程, django面试题, django笔试题, django编程思想