在Django中使用MariaDB

将Dejango的默认数据库从sqlite3切换到MariaDB的方法是什么?

确认MariaDB正在运行

sudo systemctl status mariadb

在中国安装Python的mysqlclient。

在Arch Linux中:

sudo pacman -S python-mysqlclient

在Ubuntu中:

sudo pip3安装mysqlclient

需要以下库:

sudo apt安装libmariadb-dev-compat libmariadb-dev

在MariaDB中创建一个名为django的数据库,用户为django,密码为tiger123。

MariaDB [(none)]> create user 'django'@'localhost' identified by 'tiger123';
Query OK, 0 rows affected (0.046 sec)

MariaDB [(none)]> create schema django;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> grant all on django.* to 'django'@'localhost';
Query OK, 0 rows affected (0.013 sec)

确认的步骤

mysql -udjango -ptiger123 django

假设有一个名为proj01的项目,
修改proj01/settings.py。

省略
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django',
        'USER': 'django',
        'PASSWORD': 'tiger123',
        'HOST': 'localhost',
        'PORT': '3306',
        'OPTIONS': {
                'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
                },
    }
}
省略

反映设定的更改

python manage.py migrate

尝试使用数据库

$ python manage.py dbshell
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 43
Server version: 10.5.12-MariaDB-1build1 Ubuntu 21.10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [django]>

创建超级用户

python manage.py createsuperuser

输入密码等信息
电子邮件地址可以是test@test.com。

啟動開發伺服器

python manage.py runserver
admin.png
user.png

MariaDB中已经创建了以下表。

MariaDB [django]> show tables;
+----------------------------+
| Tables_in_django           |
+----------------------------+
| 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             |
+----------------------------+

我已在下一个版本中确认。

$ python --version
Python 3.8.5
$ python -m django --version
3.1.1
广告
将在 10 秒后关闭
bannerAds