Pycharm中的Django项目连接mysql数据库(包含出现的错误)

配置Django连接到mysql

1.models.py写一个类,继承models.Model

class Book(models.Model):
    name=models.CharField(max_length=20)
    price=models.IntegerField()
    pub_date=models.DateField()

2.修改settings.py文件

DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.mysql', 

        'NAME': 'books',    #你的数据库名称

        'USER': 'root',   #你的数据库用户名

        'PASSWORD': '', #你的数据库密码

        'HOST': '', #你的数据库主机,留空默认为localhost

        'PORT': '3306', #你的数据库端口
    }
}

3.修改项目文件夹下的__init__.py文件

没有安装pymsql(python3)的请在pycharm自行安装,安装后添加以下内容

import pymysql
pymysql.install_as_MySQLdb()

4.数据库迁移

由于Django默认使用的数据库为SQLlite,但现在重新配置了MySQL数据库,因此需要将原来的数据迁移过来。

配置好上面的信息后,执行数据迁移,然后重启服务,就可以继续开发你的系统

[root@localhost Django_ORM]# python manage.py makemigrations
[root@localhost Django_ORM]# python manage.py migrate

在此处可能遇到的问题:

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11.None

MySQLclient目前只支持到python3.4,因此如果使用的更高版本的python,可以修改下面路径的文件(即python的安装路径):

C:\Users\dell\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\django\db\backends\base\base.py

将下面的文件注释掉即可:

 if version < (1, 3, 3):

    raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)

如果还是出现类似错误,我当时是查看了一下pymysql的版本,发现有点低,就将pymysql卸载后又安装了一遍即:

卸载是在pycharm的setting中(点击-即可卸载)

安装代码如下所示:

pip3 install pymysql

如果出现下面这种错误

site-packages/pymysql/cursors.py:166: Warning: (3135, "'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO'
sql modes should be used with strict mode. They will be merged with strict mode in a future release.")
  result = self._query(query)
site-packages/pymysql/cursors.py:166: Warning: (3090, "Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release.")
  result = self._query(query)

只需要修改django中的配置文件settings.py文件,将数据库的配置里设置SQL_MODES的地方注释掉即可。

5.数据库的配置连接

最后输入帐号密码登陆

发布了34 篇原创文章 · 获赞 45 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/one_super_dreamer/article/details/86561980
今日推荐