Python Django切换MySQL数据库实例详解


Posted in Python onJuly 16, 2019

准备

软件 版本
Django 2.1.3
Python 3.7.1

默认使用的是sqlite3

DATABASES = {
   'default': {
     'ENGINE': 'django.db.backends.sqlite3',
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
   }
}

切换为MySql:

# settings.py
DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'book',
    'USER': 'root',
    'PASSWORD': '123456',
    'HOST': '127.0.0.1',
    'POST': '3306',
  }
}

实现步骤

我们使用Django 来操作MySQL,实际上底层还是通过Python来操作的。因此我们想要用Django来操作MySQL,首先还是需要安装一个驱动程序。在Python3中,驱动程序有多种选择。比如有pymysql以及mysqlclient等。

常见的Mysql驱动介绍:

  • MySQL-python:也就是MySQLdb。是对C语言操作MySQL数据库的一个简单封装。遵循了Python DB API v2。但是只支持Python2,目前还不支持Python3。
  • mysqlclient:是MySQL-python的另外一个分支。支持Python3并且修复了一些bug。
  • pymysql:纯Python实现的一个驱动。因为是纯Python编写的,因此执行效率不如MySQL-python。并且也因为是纯Python编写的,因此可以和Python代码无缝衔接。
  • MySQL Connector/Python:MySQL官方推出的使用纯Python连接MySQL的驱动。因为是纯Python开发的。效率不高。

mysqlclient安装

基于目前的环境以及版本来说,直接运行 pip install mysqlclient 是会报错的,具体错误,自己执行以下就知道了。

解决办法:

去 https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient 下载指定文件,我用的是python3.7,win环境是64位,所以下载了mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl。

然后执行:

pip3 install mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl

如果出现以下说明安装成功:

Installing collected packages: mysqlclient
Successfully installed mysqlclient-1.3.13

迁移数据库

Django中通过以下命令来迁移数据库,在每次创建Model时,执行该命令,在数据库中生成对应的表:

python manage.py makemigrations
python manage.py migrate

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Pyramid将models.py文件的内容分布到多个文件的方法
Nov 27 Python
利用pandas读取中文数据集的方法
Jul 25 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
Python 保存矩阵为Excel的实现方法
Jan 28 Python
python之pyqt5通过按钮改变Label的背景颜色方法
Jun 13 Python
Python OpenCV调用摄像头检测人脸并截图
Aug 20 Python
python多线程与多进程及其区别详解
Aug 08 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
Python多线程通信queue队列用法实例分析
Mar 24 Python
jupyter notebook中美观显示矩阵实例
Apr 17 Python
基于python实现判断字符串是否数字算法
Jul 10 Python
python中random模块详解
Mar 01 Python
Python二维码生成识别实例详解
Jul 16 #Python
python3.6+selenium实现操作Frame中的页面元素
Jul 16 #Python
Python Web版语音合成实例详解
Jul 16 #Python
windows下python虚拟环境virtualenv安装和使用详解
Jul 16 #Python
Pandas中DataFrame的分组/分割/合并的实现
Jul 16 #Python
Python的matplotlib绘图如何修改背景颜色的实现
Jul 16 #Python
python调用其他文件函数或类的示例
Jul 16 #Python
You might like
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
一些需要禁用的PHP危险函数(disable_functions)
2012/02/23 PHP
PHP函数eval()介绍和使用示例
2014/08/20 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
PHP错误机制知识汇总
2016/03/24 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
jquery向上向下取整适合分页查询
2014/09/06 Javascript
jquery中ajax使用error调试错误的方法
2015/02/08 Javascript
jQuery实现可用于博客的动态滑动菜单
2015/03/09 Javascript
使用impress.js制作幻灯片
2015/09/09 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
微信小程序实现页面浮动导航
2020/01/08 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
浅谈Python中的全局锁(GIL)问题
2019/01/11 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
高中语文教学反思
2014/01/16 职场文书
中文师范生自荐信
2014/01/30 职场文书
未婚证明书模板
2014/10/08 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书
张丽莉观后感
2015/06/16 职场文书