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如何通过protobuf实现rpc
Mar 06 Python
Python实现统计文本文件字数的方法
May 05 Python
Python编程实现控制cmd命令行显示颜色的方法示例
Aug 14 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
python3如何将docx转换成pdf文件
Mar 23 Python
python3使用SMTP发送HTML格式邮件
Jun 19 Python
基于随机梯度下降的矩阵分解推荐算法(python)
Aug 31 Python
python实现梯度下降和逻辑回归
Mar 24 Python
Python selenium爬取微信公众号文章代码详解
Aug 12 Python
python获取时间戳的实现示例(10位和13位)
Sep 23 Python
numpy数据类型dtype转换实现
Apr 24 Python
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
May 04 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
重置版宣传动画
2020/04/09 魔兽争霸
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
2007/07/21 PHP
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
必须收藏的23个php实用代码片段
2016/02/02 PHP
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
2016/12/05 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
nodejs使用http模块发送get与post请求的方法示例
2018/01/08 NodeJs
Node.js中的child_process模块详解
2018/06/08 Javascript
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
使用layui监听器监听select下拉框,事件绑定不成功的解决方法
2019/09/28 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
Python聚类算法之基本K均值实例详解
2015/11/20 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
python中退出多层循环的方法
2018/11/27 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
2020/02/15 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
英国护发和美妆在线商店:Klip Shop
2019/03/24 全球购物
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
护理自我鉴定范文
2013/10/06 职场文书
车祸赔偿收入证明
2014/01/09 职场文书
数学与统计学院学生个人职业生涯规划书
2014/02/10 职场文书
三峡导游词
2015/01/31 职场文书
单身狗福利?Python爬取某婚恋网征婚数据
2021/06/03 Python
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python
springboot创建的web项目整合Quartz框架的项目实践
2022/06/21 Java/Android