首先做下笔记,关于setting的设置
创建django项目的时候,在setting中我连接的是mysql数据库,而不是django默认的sqlite3,所以在setting中的database设置如下
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'bookdb', # mysql中数据库的名字,必须要存在数据库,否则会出现Unknown database ***错误
'USER': 'root',
'PASSWORD': 'root',
'HOST': '', # HOST 和PORT 参数默认为空
'PORT': '',
}
}
这里我有点不怎么清楚,后面的一些参数基本是照流程写上去的,这里我放上官方的解释
HOST
默认值:" "(空字符串),表示连接数据库使用哪台主机。空字符串表示本地(localhost)。使用SQLite时该项无效。
NAME
默认值:" ",使用的数据库名称。对SQLite而言,该设置就是数据库文件的完整路径。要注意的是,指定文件路径时 一定要使用斜杠,即便是在Windows平台也是如此 (比如 C:/homes/user/mysite/sqlite3.db)。
PASSWORD
默认值:" ",连接数据库时使用的密码,使用SQLite时此项无效。也就是使用默认默认的sqlite3数据库无效
PORT
默认值:" ",连接数据库时使用的端口。空字符串表示使用默认端口
USER
默认值:" ",连接数据库时使用的用户名。使用SQLite时无效
----------------------------------------------------------------------------------分割线------------------------------------------------------------------------------
下面开始说标题的问题,我用的是python 3.6和django 1.8的版本
运行 python3 manage.py makemigrations时会有如下的问题。
在很多的博客上看到的原因是因为python2和python3连接的库不同,python2中的版本是用的MySQL库,而python3中改变了连接库,改为了pymysql,但是在Django中,连接数据库使用的是MySQLdb,这就使得在和python3一起用时会出现上图的错误。
(参考:https://blog.csdn.net/LHYzyp/article/details/70550683)
参考的这个博客的方法我没有用,而是在别的地方看到了,说要下载 mysqlclient 就可以来操作MySQL,说是想使用python3操作mysql就需要MySQLdb驱动,这里其实我有点懵,记得以前用pytho3和django写作业时好像没有遇到这样的情况,得后面再去看下以前写得作业才知道,,,
这里安装好了 mysqlclient 后,(如果pip安装有问题可以用whl文件安装),我所遇到得问题也就解决了,如下
在我的mysql数据库中可以看到我所创建得数据表和python自动创建的一系列表
待更新。。。。。。