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 09 Python
python 调用c语言函数的方法
Sep 29 Python
Python爬虫实现简单的爬取有道翻译功能示例
Jul 13 Python
python使用tornado实现简单爬虫
Jul 28 Python
Python 实例方法、类方法、静态方法的区别与作用
Aug 14 Python
如何安装2019Pycharm最新版本(详细教程)
Sep 26 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
PyQt5 如何让界面和逻辑分离的方法
Mar 24 Python
Python3-异步进程回调函数(callback())介绍
May 02 Python
Python 实现RSA加解密文本文件
Dec 30 Python
python爬虫scrapy基本使用超详细教程
Feb 20 Python
python获取淘宝服务器时间的代码示例
Apr 22 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
smarty中js的调用方法示例
2014/10/27 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
prototype Element学习笔记(篇二)
2008/10/26 Javascript
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
2010/05/07 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
js实现图片漂浮效果的方法
2015/03/02 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
AngularJS控制器controller正确的通信的方法
2016/01/25 Javascript
javascript入门之数组[新手必看]
2016/11/21 Javascript
JS中位置与大小的获取方法
2016/11/22 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
浅谈vue-router 路由传参的方法
2017/12/27 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
使用vue实现一个电子签名组件的示例代码
2020/01/06 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
Js和VUE实现跑马灯效果
2020/05/25 Javascript
Python 基础知识之字符串处理
2017/01/06 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
pandas分批读取大数据集教程
2020/06/06 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
2020/09/03 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
用python对oracle进行简单性能测试
2020/12/05 Python
关键字final的用法
2013/10/02 面试题
2014年元旦感言
2014/03/06 职场文书
驾驶员安全责任书范本
2014/07/24 职场文书
食堂管理制度范本
2015/08/04 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书