在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
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