连接 DJango 和 MySQL 数据库

152 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 15 天,点击查看活动详情

开箱即用的 Django 在项目中嵌入了 sqlite 数据库。最少的配置和从 sqlite 存储和检索数据的便利性适用于小规模的 web 应用程序,但是对于大规模的 web 应用程序,sqlite 会导致性能问题。为了避免性能问题,第一步是选择一个能够满足数百甚至数千个同时点击的合适数据库。MySQL 数据库可用于此目的。

在本文中,我将向您介绍连接 Django 与 MySQL 数据库所需的所有必要配置。

设置 MySQL 数据库

第 1 步:创建新模式

打开 MySQL Workbench 并通过单击已连接服务器选项中的创建新模式来创建新模式。

选择合适的模式/数据库名称并按应用。这将创建模式,它将出现在MySQL 工作台的SCHEMAS部分。

image.png

在我们的例子中,模式名称是djangodatabase。

第 2 步:为架构创建身份验证用户

模式准备就绪后,创建身份验证用户并向该用户授予权限。

通过运行以下查询创建用户

创建由“12345”标识的用户 dbadmin;

这里 dbadmin 是用户名,12345 是密码。

通过运行以下查询授予权限

将 djangodatabase. 上的所有内容授予 'dbadmin'@'%';*

这里 djangodatabase 是架构/数据库名称。“.*”表示正在授予所有权限,dbadmin 是被授予权限的用户。

为了加载新授予的权限给用户运行以下查询

刷新权限;

这就是 MySQL 配置部分的全部内容。现在让我们转向 Django 项目。

设置 Django 项目

第一步:安装MySQL客户端

可以直接通过pip使用命令安装MySQL客户端

pip安装mysql客户端

如果安装了 MySQL 客户端,那很好,但是此命令在大多数系统上都会出错。我将向您展示另一种安装 MySQL 客户端的方法。

根据 python 版本,从以下网站下载合适的 mysqlclient wheel 文件。

将文件放在项目的根目录中。 在同一目录中打开命令提示符并运行以下命令。

pip 安装 mysqlclient-1.3.13-cp37-cp37m-win32.whl

此处 wheel 文件的名称将根据您的 Python 版本而改变。命令执行后,MySQL 客户端将安装在您的系统上。

第 2 步:更新连接字符串

打开 Django 项目的 settings.py 文件。文件中会有数据库连接字符串,看起来像

image.png

更新连接字符串。

DATABASES = {  
'default': {  
'ENGINE': 'django.db.backends.mysql',  
'NAME': 'djangodatabase',  
'USER': 'dbadmin',  
'PASSWORD': '12345',  
'HOST': 'localhost',  
'PORT': '3306',  
}  
}

这里的名称是方案/数据库名称,USER 是 auth 用户,PASSWORD 是 auth 用户的密码。ENGINE、HOST 和 PORT 可以保留默认设置。

第 3 步:进行迁移

现在运行命令

python 管理.py 迁移

这会将所有默认的 Django 表迁移到您的 MySQL 模式。

image.png

现在,对模型文件所做的任何更改都将在迁移时反映在 MySQL 模式中。

这就是将 Django Web 应用程序与 MySQL 数据库连接的方式,只需几个简单的步骤。