简介
Django 是一个用 Python 编写的免费开源的 Web 框架。这个工具支持可扩展性、可重用性和快速开发。
在本教程中,您将学习如何为一个博客网站建立与 MySQL 数据库的初始基础。这将涉及使用 django-admin
创建博客 Web 应用程序的骨架结构,创建 MySQL 数据库,并将 Web 应用程序连接到数据库。
Django 将为您提供一个开发环境,用于开发博客 Web 应用程序,但在将博客发布到互联网之前,您需要采取更多步骤。
先决条件
要按照本教程操作,您需要:
- 一个安装了 Ubuntu 22.04 服务器,具有非 root
sudo
权限的用户和防火墙。请按照我们的 Ubuntu 22.04 初始服务器设置指南进行设置。 - 安装 MySQL 以用作数据库。您可以按照我们的教程《在 Ubuntu 22.04 上安装 MySQL》进行设置。
- 设置 Python 环境。有关此操作,请参阅我们的教程《在 Ubuntu 22.04 上安装 Python 3 并设置编程环境》。
一旦所有内容都安装并设置好,您就可以继续进行第一步。
步骤 1 --- 创建数据库
Django 支持多种流行的数据库管理系统,但本指南侧重于将 Django 连接到 MySQL 数据库。为此,您需要在 MySQL 实例上创建一个数据库,以及一个 Django 可以用来连接到数据库的 MySQL 用户配置文件。
要设置这一点,请使用以下命令连接到 MySQL 数据库,作为 root MySQL 用户:
command
sudo mysql
当提示符更改为以下内容时,您就知道已经进入了 MySQL 服务器:
custom_prefix(mysql>)
)>
使用以下命令检查当前数据库:
custom_prefix(mysql>)
)>SHOW DATABASES;
假设您尚未创建任何数据库,您的输出将类似于以下内容:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
默认情况下,您将已经创建了 4 个数据库:information_schema
、MySQL
、performance_schema
和 sys
。您不需要操作这些数据库,因为它们包含了对 MySQL 服务器本身重要的信息。
而是,创建将保存博客数据的初始数据库。
要在 MySQL 中创建数据库,请运行以下命令,为您的数据库使用一个有意义的名称:
custom_prefix(mysql>)
)>CREATE DATABASE blog_data;
成功创建数据库后,您的输出将如下所示:
Query OK, 1 row affected (0.00 sec)
验证数据库现在是否列在可用数据库中:
command
SHOW DATABASES;
blog_data
数据库现在应该列在输出中包含的数据库中:
+--------------------+
| Database |
+--------------------+
| information_schema |
| blog_data |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
接下来,创建一个单独的 MySQL 用户帐户,Django 将用于操作新数据库。创建特定的数据库和帐户可以从管理和安全的角度支持您。在本指南中,我们将使用名称 djangouser。您可以使用任何您喜欢的名称,但选择一个有描述性的名称可能会有所帮助。
您将创建此帐户,设置密码,并授予其对您创建的数据库的访问权限。首先,通过输入以下命令创建用户并设置其密码。请记住,通过在此示例中替换 password
来为您的数据库选择一个强密码:
custom_prefix(mysql>)
)>CREATE USER 'djangouser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
让数据库知道 djangouser 应该完全访问您设置的数据库:
custom_prefix(mysql>)
)>GRANT ALL ON blog_data.* TO 'djangouser'@'localhost';
现在您有了一个专门为 Django 创建的数据库和用户帐户。刷新权限,以便当前的 MySQL 实例知道您所做的最近更改:
custom_prefix(mysql>)
)>FLUSH PRIVILEGES;
完成后,您可以通过输入 EXIT;
或按 CTRL + D
来退出 MySQL 服务器。
步骤 2 --- 创建 MySQL 选项文件
与其在 Django 配置文件中指定 MySQL 连接详细信息,不如将它们存储在一个选项文件中。许多 MySQL 程序可以读取选项文件,也称为配置文件,用于存储启动选项或连接详细信息等信息。这样做很方便,因为您只需在一个地方存储数据库登录凭据。
使用您喜欢的文本编辑器打开 my.cnf
配置文件以更新您的 MySQL 凭据。这里我们将使用 nano
:
command
sudo nano /etc/mysql/my.cnf
添加以下行并包含您的相关信息:
...
[client]
database = blog_data
user = djangouser
password = your_actual_password
default-character-set = utf8
请注意,utf8
被设置为默认编码。这是在 MySQL 中对 Unicode 数据进行编码的常见方式。当您确定您的详细信息是正确的时,保存并关闭文件。如果您使用 nano
编辑文件,您可以按 CTRL + O
保存文件,然后按 CTRL + X
关闭编辑器。
编辑文件后,重新启动 MySQL 以使更改生效:
command
sudo systemctl daemon-reload
sudo systemctl restart mysql
请注意,重新启动 MySQL 需要几秒钟的时间,请耐心等待。