编码员你好。
这篇文章解释了如何在Django中使用MySql,并从默认的SQLite数据库切换到一个可用于生产的数据库管理系统(MySql)。这个话题听起来可能是一个微不足道的话题,但在我的支持会议上,我一次又一次地收到这个问题,特别是来自初学者的问题。
对于新手来说,Django是一个领先的Python网络框架,由专家使用bateries-included 概念构建。作为这样一个成熟的框架,Django提供了一种简单的方法,可以从默认的SQLite数据库切换到其他数据库引擎,如MySql、PostgreSQL或Oracle。MySql是一个强大的开源关系型数据库,信息被关联并保存在一个或多个表中。
谢谢你的阅读!- 内容由**App Generator**提供。
Django数据库系统
Django提供了一种通用的方式,可以使用一个通用接口访问多个数据库后端。理论上,Django使我们能够在不更新SQL代码的情况下在数据库引擎之间切换。默认的SQLite数据库通常可以满足小型或演示项目的所有要求,但对于生产使用,建议使用MySql或PostgreSQL等更强大的数据库引擎。
数据库的设置被保存在manage.py 文件中。在我的Django项目中,这个文件被保存在core 目录中。
< PROJECT ROOT >
|
|-- manage.py # Specify the settings file
|
|-- core/ # Implements app logic
| |-- settings.py # Django app bootstrapper
| |-- wsgi.py # Start the app in production
| |-- urls.py # Define URLs served by all apps/nodes
让我们来看看配置数据库接口的settings.py 文件的内容。
# File: core/settings.py
...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME' : 'db.sqlite3',
}
}
...
上面的片段是由Django项目的脚手架时提供的。我们可以看到,SQLite驱动是由ENGINE 这个变量指定的。
为MySql更新Django
要使用MySql作为Django项目的后台引擎,我们需要遵循一个简单的设置。
- 安装MySql服务器(我们也可以使用一个远程服务器)
- 安装Mysql Python驱动--Django用来连接和通信
- 创建Mysql数据库和用户
- 更新Django的设置
- 执行Django迁移并创建项目表
安装MySql服务器
安装过程在不同的系统上是不同的,但这一阶段不应该是一个阻塞点,因为Unix系统默认提供了一个MySql服务器,对于Windows,我们可以使用一个可视化的安装程序。 欲了解更多信息,请访问下载页面,选择与您的操作系统相匹配的安装程序。
安装Python驱动程序
为了成功访问Mysql引擎,Django需要一个驱动(又称连接器)来将Python查询转换为纯SQL指令。
$ pip install mysqlclient
上面的指令将在系统中全局安装Python MySql驱动。另一种方法是使用沙盒安装的virtual environment 。
$ # Create and activate the virtual environment
$ virtualenv env
$ source env/bin/activate
$
$ # install the mysql driver
$ pip install mysqlclient
创建MySql数据库
在初始安装过程中,Django创建了项目表,但不能创建数据库。为了有一个可用的项目,我们需要Django项目以后使用的数据库凭证。数据库可以用数据库工具(如MySQL Workbench)直观地创建,或使用终端。
CREATE DATABASE mytestdb;
创建一个新的MySql用户
CREATE USER 'test'@'localhost' IDENTIFIED BY 'Secret_1234';
给新创建的用户授予所有权限
GRANT ALL PRIVILEGES ON `mytestdb` . * TO 'test'@'localhost';
FLUSH PRIVILEGES;
更新Django设置
一旦MySql数据库创建完毕,我们就可以继续更新项目设置以使用MySql服务器。
# File: core/settings.py
...
DATABASES = {
'default': {
'ENGINE' : 'django.db.backends.mysql', # <-- UPDATED line
'NAME' : 'mytestdb', # <-- UPDATED line
'USER' : 'test', # <-- UPDATED line
'PASSWORD': 'Secret_1234', # <-- UPDATED line
'HOST' : 'localhost', # <-- UPDATED line
'PORT' : '3306',
}
}
...
启动项目
我们的简单教程的下一步是运行Django迁移,它将创建所有必要的表。
$ # Create tables
$ python manage.py makemigrations
$ python manage.py migrate
启动Django项目
$ # Start the application (development mode)
$ python manage.py runserver
此时,Django应该已经成功连接到Mysql服务器,我们可以检查数据库并列出数据库迁移过程中新创建的表。
谢谢你的阅读!如需更多资源,请随时访问。