更新时间:2023-02-14 来源:黑马程序员 浏览量:
在一些大型的项目演练中,通常项目会拟采用MySQL存储商品数据、用户账户数据和订单等数据量较大、需持久化存储的数据,Django默认使用的数据库是sqlite3,下面分步骤介绍如何为Django项目配置MySQL数据库。
1.新建MySQL数据库
为项目配置MySQL数据库之前需先创建小鱼商城的数据库和授权用户,在本地主机新建MySQL数据库xiaoyu(编码方式为utf-8),创建MySQL用户itheima(密码为123456)并授权该用户访问xiaoyu_mall。
2.配置MySQL数据库
打开配置文件dev.py,修改DATABASES的配置信息,修改后的代码如下:
DATABASES = { 'default': { # 'ENGINE':'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'HOST': '127.0.0.1', # 数据库主机 'PORT':3306, # 数据库端口 'USER':'itheima', # 数据库用户名 'PASSWORD':'123456', # 数据库用户密码 'NAME':'xiaoyu', # 数据库名字 } }
3.安装PyMySQL扩展包
数据库配置完成后可能出现以下错误:
Error loading MySQLdb module: No module named 'pymysql'.
出现以上错误是因为Django中操作MySQL数据库需要启动程序PyMySQL,而且前虚拟环境中没有驱动程序PyMySQL。安装PyMySQL可以解决以上错误:
(xiaoyu_mall) E:\xiaoyu_mall>pip install PYMYSQL
但是后期创建应用时又会出现以下异常:
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
这是因为目前Python3使用的MySQL数据库驱动程序为mysqlclient。mysqlclient和PyMySQL实质上是由同一作者研发的不同版本的MySQL数据库驱动程序,PyMySQL相对陈旧,这里需要卸载PyMySQL,安装mysqlclient以解决异常,具体操作如下:
(xiaoyu_mall) E:\xiaoyu_mall\xiaoyu_mall\apps>pip unistall pymysql (xiaoyu_mall) E:\xiaoyu_mall\xiaoyu_mall\apps>pip install mysqlclient