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中转换角度为弧度的radians()方法
May 18 Python
python Django批量导入数据
Mar 25 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
May 24 Python
python多进程提取处理大量文本的关键词方法
Jun 05 Python
Python TestCase中的断言方法介绍
May 02 Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 Python
如何在 Django 模板中输出 "{{"
Jan 24 Python
解决python中import文件夹下面py文件报错问题
Jun 01 Python
pytorch 常用函数 max ,eq说明
Jun 28 Python
Pycharm如何自动生成头文件注释
Nov 14 Python
python实现定时发送邮件到指定邮箱
Dec 23 Python
Python+腾讯云服务器实现每日自动健康打卡
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实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
js 实现打印网页中定义的部分内容的代码
2010/04/01 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
2013/10/11 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
js实现简易拖拽的示例
2020/10/26 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
js实现弹幕墙效果
2020/12/10 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
[01:23:45]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第一场 1月22日
2021/03/11 DOTA
解决Ubuntu pip 安装 mysql-python包出错的问题
2018/06/11 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
优秀的2014年两会精神解读
2014/03/17 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
分享python函数常见关键字
2022/04/26 Python
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript