微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【django学习-14】Django配置mysql数据库,问题汇总

DATABASES = {
    # 'default': {
    #     'ENGINE': 'django.db.backends.sqlite3',
    #     'NAME': BASE_DIR / 'db.sqlite3',
    # }
    'default': {
        'ENGINE': 'django.db.backends.MysqL',
        'NAME': 'mysite0912',
        'USER': 'root',
        'PASSWORD': 'xxx',
        'HOST':'xxxxx',
        'PORT':'3306',
    }
}

NAME即数据库的名字,在MysqL连接前该数据库必须已经创建,而上面的sqlite数据库下的db.sqlite3则是项目自动创建
USER和PASSWORD分别是数据库用户名和密码。
设置完后,再启动我们的Django项目前,我们需要激活我们的MysqL。
然后,启动项目,会报错:no module named MysqLdb
这是因为django认你导入的驱动是MysqLdb,可是MysqLdb对于py3有很大问题,所以我们需要的驱动是PyMysqL
所以,我们只需要找到项目名文件下的__init__,在里面写入:
import pyMysqL
pyMysqL.install_as_MysqLdb()
问题解决
import pyMysqL

pyMysqL.version_info = (1, 4, 13, "final", 0)  # 指定版本
pyMysqL.install_as_MysqLdb()
  • 3、执行python manage.py migrate

    • 处理方法
      • MysqL>grant all privileges on data.* to work; //data是数据库,work是操纵data的用户
      • MysqL>flush privileges; //刷新系统权限表
  • 4、再次执行,还是报错

    • 这是由于字段中有汉字,创建库时添加 charset=utf8,

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐