Django的mysql配置
目录
1.首先,安装pymysql(此模块的作用是用python来操作mysql)
4. 修改项目中init.py 加入如下内容来提供pymysql引擎的支持
6.至此,mysql配置完成。启动项目python manage.py runserver
Django的ORM框架简介:
ORM即对象关系映射,通过类和对象对数据库进行操作,从而避免了直接使用SQL语句,通过面向对象编程思想,极大程度上方便了用户操作数据库,避免了繁琐的SQL语句。
我是用的是pycharm直接连接Windows上的mysql数据库。用Django3.0版本
Django下配置使用mysql数据库:
1.首先,安装pymysql(此模块的作用是用python来操作mysql)
Pip install pymysql
2.创建自己需要连接的数据库。
create database mywebdb default charset utf8 collate utf8_general_ci; #这里我创建了一个名为mywebdb的数据库。
3.pycharm连接主机上的数据库(此过程省略)
4. 修改项目中init.py 加入如下内容来提供pymysql引擎的支持
5.在setting.py文件中配置数据库
找到DATABASES选项,将自带的sqlite3数据表注释,添加mysql数据库选项。这里的选项可以不用刻意记住,需要知道的是有这个选项就可以。
具体参数了解:
(1)ENGINE指定数据库的后端引擎
\'django.db.backends.mysql\'
\'django.db.backends.sqlite3\'
\'django.db.backends.oracle\'
\'django.db.backends.postgresql\'
- mysql引擎如下:
- \'django.db.backends.mysql\'
(2)NAME
- 指定要连接的数据库的名称
- \'NAME\': \'mywebdb\'
(3)USER
- 指定登录到数据库的用户名
- \'USER\':\'root\'
(4)PASSWORD
- 接数据库时使用的密码。
- \'PASSWORD\':\'123456\'
(5)HOST
- 连接数据库时使用哪个主机。
- \'HOST\':\'127.0.0.1\'
(6)PORT
- 连接数据库时使用的端口。
- \'PORT\':\'3306\'
6.至此,mysql配置完成。启动项目python manage.py runserver
错误处理:
坑一:
Django3.0/mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3
解决办法:
#在这里,直接在pycharm报错的提示中找到这个base.py文件,注释掉以下部分(35、36行)
if version < (1, 3, 3):
raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)
坑二:
我在注释上面几行后,重新运行项目,pycharm提示
following errors occurred on attempt to save files和Unable to save settings: Failed和Cannot Save Files
提示显示不能保存文件,这里的原因在于pycharm
Pycharm --->setting取消下面的选项
坑三:
取消后发现依然提示错误,这次提示的错误时文件“拒绝访问”。
看到这样的提示第一时间想到的是权限问题,所以我修改了windows上base.py的文件权限,修改权限后,base.py文件可以被修改。
坑四:
修改base.py文件后运行项目又报以下错误:
AttributeError: ‘str’ object has no attribute ‘decode’
#通过错误提示找到operations.py文件,将decode改为encode
if query is not None: query = query.decode(errors=\'replace\') return query #改为 if query is not None: query = query.encode(errors=\'replace\') return query