Django中更改默认数据库为mysql的方法示例


Posted in Python onDecember 05, 2018

Django中默认使用sqlite3数据库,今天研究了下如何将它换成常见的mysql数据库。

由于项目用得python3,而MySQLdb没有支持python3的版本,如果使用python3.x版本时,pip install MySQLdb时会报错。

后来通过谷歌发现可以使用pymysql替代MySQLdb

1 在项目根目录下的__init__.py文件中加入如下代码:

import pymysql
pymysql.install_as_MySQLdb()

2 使用mysqlclient代替MySQLdb,安装方式为:

pip install mysqlclient

3 更改项目setting.py中对数据库的配置为:

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'test',
    'USER': 'username',
    'PASSWORD': 'passwd',
    'HOST': 'localhost',
    'PORT': '3306'
  }
}

4 最后通过python manage.py migrate命令,Django会在数据库中自动创建相应的表

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying polls.0001_initial... OK
  Applying sessions.0001_initial... OK

5 在创建admin用户时,遇到了如下报错

python manage.py createsuperuser
Superuser creation skipped due to not running in a TTY. You can run `manage.py createsuperuser` in your project to create one manually.

后来查了一下,是因为使用了git来执行命令,切换到Windows自带的命令行,可以解决该问题!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现根据IP地址和子网掩码算出网段的方法
Jul 30 Python
python 的列表遍历删除实现代码
Apr 12 Python
Python模拟登录验证码(代码简单)
Feb 06 Python
python 请求服务器的实现代码(http请求和https请求)
May 25 Python
Python实现重建二叉树的三种方法详解
Jun 23 Python
python实现简易动态时钟
Nov 19 Python
python实现维吉尼亚加密法
Mar 20 Python
Python在Matplotlib图中显示中文字体的操作方法
Jul 29 Python
解决Python对齐文本字符串问题
Aug 28 Python
python如何实现DES加密
Sep 21 Python
python通过cython加密代码
Dec 11 Python
Python的scikit-image模块实例讲解
Dec 30 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
Dec 05 #Python
在python2.7中用numpy.reshape 对图像进行切割的方法
Dec 05 #Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
Dec 05 #Python
python3 实现对图片进行局部切割的方法
Dec 05 #Python
python中强大的format函数实例详解
Dec 05 #Python
python3+opencv3识别图片中的物体并截取的方法
Dec 05 #Python
解决Python3.5+OpenCV3.2读取图像的问题
Dec 05 #Python
You might like
建立文件交换功能的脚本(二)
2006/10/09 PHP
一个简单的php路由类
2016/05/29 PHP
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
jQuery 跨域访问问题解决方法
2009/12/02 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
nodejs进阶(6)—连接MySQL数据库示例
2017/01/07 NodeJs
React复制到剪贴板的示例代码
2017/08/22 Javascript
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
vue.js 使用axios实现下载功能的示例
2018/03/05 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
[02:33]DOTA2英雄基础教程 司夜刺客
2013/12/04 DOTA
[01:51]2014DOTA2西雅图邀请赛 MVP 外卡赛black场间采访
2014/07/09 DOTA
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
2018/04/26 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
Python能做什么
2020/06/02 Python
化工专业个人的求职信范文
2013/11/28 职场文书
学校校庆演讲稿
2014/05/22 职场文书
民间借贷协议书范本
2014/10/01 职场文书
2014年语文教学工作总结
2014/12/17 职场文书
业务员辞职信范文
2015/03/02 职场文书
银行自荐信范文
2015/03/25 职场文书
体育委员竞选稿
2015/11/21 职场文书
跟班学习心得体会(共6篇)
2016/01/23 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
基于Python实现对比Exce的工具
2022/04/07 Python