Django 连接 MySQL 数据库及常见报错解决
Django 连接 MySQL数据库及常见报错解决
MySQL 的安装以及设置远程访问权限,不属于本笔记的重点,此处不做多余赘述
前提:
MySQL 安装成功,且已配置远程访问权限(如在本地测试的忽略此项)
终端或者数据库管理工具连接 MySQL ,并新建项目所需数据库
CREATE DATABASE drf_shop CHARACTER SET utf8;
创建数据库一定要将字符编码设置为utf8,很多错误就是没正确设置编码导致的!
安装访问 MySQL 的 Python 模块
pip install pymysql
Django 相关配置
工程文件夹(settings平级的文件夹)/_init_.py
from pymysql import install_as_MySQLdb
install_as_MySQLdb()
settings.py 中替换默认 DATABASE
相关配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # django 数据库后台
'NAME': 'drf_shop', # 连接数据库的名称
'USER': 'root', # 用户名
'PASSWORD': '123456', # 密码
'HOST': '127.0.0.1', # 主机
'PORT': '3306', # 端口
}
}
至此,就可以像使用SQLite一样使用MySQL了!
可能会遇到的报错
首先需要保证前面所有步骤均配置成功
报错1: django.core.exceptions.ImproperlyConfigured: mysqlclient 1.x.xx or newer is required; you have 0.x.x.
报错内容:
raise ImproperlyConfigured('mysqlclient 1.x.xx or newer is required; you have %s.' % Database.__version__)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.x.xx or newer is required; you have 0.x.x.
这里
xx
表示版本,报错版本可能不同但解决方法时一样的
解决方法:
/Python37(python安装目录)/Lib/site-packages/django/db/backends/mysql/base.py
,注释掉以下内容:
# if version < (1, 3, 13):
# raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
报错2:AttributeError: 'str' object has no attribute 'decode'
报错内容:
File "xx\Python37\lib\site-packages\django\db\backends\mysql\operations.py", line 146, in last_executed_query
query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'
解决方法:
打开 xx\Python37\lib\site-packages\django\db\backends\mysql\operations.py
把146行的 decode
修改为 encode
即可
Django 连接 MySQL 数据库及常见报错解决的更多相关文章
- django2.0+连接mysql数据库迁移时候报错
django2.0+连接mysql数据库迁移时候报错 情况一 错误信息 django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 ...
- Python3之Django连接mysql数据库
一.mysql服务器 系统版本:CentOS6.8 IP :10.0.0.51 版本 1.授权root远程登录 grant all on *.* to 'root'@'%' identifide by ...
- Django 连接mysql数据库中文乱码
Django 连接mysql数据库中文乱码 2018年08月25日 20:55:15 可乐乐乐乐乐 阅读数:566 版本:CentOS6.8 python3.6.4 django1.8.2 数据库 ...
- django连接mysql数据库以及建表操作
django连接mysql数据库需要在project同名的目录下面的__init__.py里面加入下面的东西 import pymysql pymysql.install_as_MySQLdb() 找 ...
- Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?'
Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?' 一.原因 因为Python版本问题,MySQLdb ...
- 03:git常见报错解决方法
1.1 git常见报错解决方法 1.warning: LF will be replaced by CRLF in .idea/workspace.xml. 参考博客:https://www.cnbl ...
- [技术博客]django连接mysql数据库的方法及部分问题的解决方法
配置机器介绍 操作系统:Ubuntu 18.04.2 LTS 64位 python版本:Python 3.6.7 Django版本:Django 2.2 MySql版本:5.7.26 数据库选择 我们 ...
- Django连接MySQL数据库配置
1.自己手动创建数据库 create database 数据库名; # 如: create database bms character set utf8; # 授权访问: grant all pri ...
- 3.django连接mysql数据库及安装mysqldb驱动报错解决办法
1.在setting.py设置连接数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'djang ...
随机推荐
- 自用ftp上传脚本
#!/bin/sh backupserver=$1 #localdir=ftp_result_tmp username=$3 password=$4 #remodir='./Log/2018-01-2 ...
- Layui 模板引擎中用了CheckBox,显示时没有样式
渲染完成后,需要重新调用layui的方法. layui.form.render();
- ESA2GJK1DH1K基础篇: Android连接MQTT简单的Demo
题外话 我老爸也问我物联网发展的趋势是什么!!!!!! 我自己感觉的:(正在朝着 "我,机器人" 这部电影的服务器方向发展) 以后的设备都会和服务器交互,就是说本地不再做处理,全部 ...
- axios发送自定义请求头的跨域解决
前端发送来的axios请求信息 this.$axios.request({ url:'http://127.0.0.1:8001/pay/shoppingcar/', method:'post', ...
- 接口自动化框架2-升级版(Pytest+request+Allure)
前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱. 第一版入口:接口自动化框架(Pytest+request+Allure) 本次版本做了一些升级 ...
- jvm参数设置实例
- JAVA锁的膨胀过程和优化(阿里)
阿里的人问什么是锁膨胀,答不上来,回来做了总结: 关于锁的膨胀,synchronized的原理参考:深入分析Synchronized原理(阿里面试题) 首先说一下锁的优化策略. 1,自旋锁 自旋锁其实 ...
- Gamma阶段第八次scrum meeting
每日任务内容 队员 昨日完成任务 明日要完成的任务 张圆宁 #91 用户体验与优化https://github.com/rRetr0Git/rateMyCourse/issues/91(持续完成) # ...
- 如何使用 Django中的 get_queryset, get_context_data和 get_object 等方法
原文: https://blog.csdn.net/HH2030/article/details/80994274
- 解决git配置公钥仍然需要输入密码问题
转自:https://blog.csdn.net/dreamstone_xiaoqw/article/details/78355873 环境操作系统:CentOS 6.4 / CentOS 6.8 均 ...