Django配置Mysql数据库 (Pycharm)
Django配置MySQL数据库方法 一、settings.py文件中修改数据库配置为下面的内容: # Database # https://docs.djangoproject.com/en/2.0/ref/settings/#databases DATABASES = { ‘default‘: { ‘ENGINE‘: ‘django.db.backends.mysql‘,‘HOST‘: ‘127.0.0.1‘,‘PORT‘: ‘3306‘,‘NAME‘: ‘mysql‘,‘USER‘: ‘root‘,‘PASSWORD‘: ‘[email?protected]‘,‘OPTIONS‘: { ‘init_command‘: "SET sql_mode=‘STRICT_TRANS_TABLES‘",},} } ? 驱动(ENGINE)、主机地址(HOST)、端口号(PORT)、数据库(NAME)、用户名(NAME)以及登录密码(PASSWORD); 二、在__init_.py文件添加如下配置: # coding=utf-8 import pymysql pymysql.install_as_MySQLdb() ? 因为Django连接MySQL时默认使用MySQLdb驱动,但MySQLdb不支持Python3,因此这里将MySQL驱动设置为pymysql。 三、执行数据迁移 在项目manage.py路劲下执行如下命令即可 python manage.py makemigrations
python manage.py migrate
? 关于sql_mode的设置,可参考Django文档:https://docs.djangoproject.com/en/2.0/ref/databases/#setting-sql-mode ? ? 在数据迁移的时候遇到的两个问题 python manage.py makemigrations 问题1:django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3. ? ? ? 解决方法: 直接点上面的文件目录:/Users/aipad/Python/FirstDjango/venv/lib/python3.7/site-packages/django/db/backends/mysql/base.py 注释掉如下图这两行代码: if version < (1,3,13): ? ? ? ? ? ? 问题2:AttributeError: ‘str‘ object has no attribute ‘decode‘ ? ? 解决方法: 直接点击进入上面的目录文件:?/Users/aipad/Python/FirstDjango/venv/lib/python3.7/site-packages/django/db/backends/mysql/operations.py 在图中decode前面加上?encode(‘utf-8‘) ? ? 问题原因: python3里面,字符串要先encode手动指定其为某一编码的字节码之后,才能decode解码。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |