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 相关文章推荐
python实现类的静态变量用法实例
May 08 Python
在Python中操作时间之strptime()方法的使用
Dec 30 Python
在Python中操作文件之truncate()方法的使用教程
May 25 Python
python 计算文件的md5值实例
Jan 13 Python
5分钟 Pipenv 上手指南
Dec 20 Python
解决python Markdown模块乱码的问题
Feb 14 Python
Python 使用type来定义类的实现
Nov 19 Python
使用 Python 在京东上抢口罩的思路详解
Feb 27 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
Apr 22 Python
Python 的 __str__ 和 __repr__ 方法对比
Sep 02 Python
pytorch 一行代码查看网络参数总量的实现
May 12 Python
Python实现GIF动图以及视频卡通化详解
Dec 06 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
php的一个简单加密解密代码
2014/01/14 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
jQuery点击tr实现checkbox选中的方法
2013/03/19 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
2015/03/13 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
详解handlebars+require基本使用方法
2016/12/21 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
基于vue实现swipe分页组件实例
2017/05/25 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
JS实现“全选”和"全不选"功能代码实例
2020/02/06 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
Pandas 同元素多列去重的实例
2018/07/03 Python
Python3实现腾讯云OCR识别
2018/11/27 Python
python批量创建指定名称的文件夹
2019/03/21 Python
jupyter 导入csv文件方式
2020/04/21 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
意大利在线药房:Saninforma
2021/02/11 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
电厂职工自我鉴定
2014/02/20 职场文书
庆祝教师节活动总结
2015/03/23 职场文书
售后服务质量承诺书
2015/04/29 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
分析设计模式之模板方法Java实现
2021/06/23 Java/Android
vue如何清除浏览器历史栈
2022/05/25 Vue.js