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编写简单的HTML页面合并脚本
Jul 11 Python
Python 调用Java实例详解
Jun 02 Python
pygame实现弹力球及其变速效果
Jul 03 Python
windows环境下tensorflow安装过程详解
Mar 30 Python
详解tensorflow载入数据的三种方式
Apr 24 Python
详解python 注释、变量、类型
Aug 10 Python
Python中dict和set的用法讲解
Mar 28 Python
python实现文件的备份流程详解
Jun 18 Python
python3 实现函数写文件路径的正确方法
Nov 27 Python
Python轻量级web框架bottle使用方法解析
Jun 13 Python
python使用多线程查询数据库的实现示例
Aug 17 Python
教你用Python matplotlib库制作简单的动画
Jun 11 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函数in_array()使用详解
2014/08/20 PHP
微信API接口大全
2015/04/15 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
基于jquery封装的一个js分页
2011/11/15 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
2015/09/16 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
2016/07/08 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
jQuery检查元素存在性(推荐)
2016/09/17 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
JS常用算法实现代码
2016/11/14 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
js实现一个简易计算器
2020/03/30 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
Vue SPA 初次进入加载动画实现代码
2019/11/14 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
Python中生成Epoch的方法
2017/04/26 Python
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
数据库笔试题
2013/05/09 面试题
社会实践自我鉴定
2013/11/07 职场文书
五四青年节演讲稿
2014/05/26 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python