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高并发异步服务器核心库forkcore使用方法
Nov 26 Python
django实现前后台交互实例
Aug 07 Python
Python爬虫使用脚本登录Github并查看信息
Jul 16 Python
Python分割指定页数的pdf文件方法
Oct 26 Python
python调用外部程序的实操步骤
Mar 04 Python
python实现计数排序与桶排序实例代码
Mar 28 Python
python仿evething的文件搜索器实例代码
May 13 Python
python实现ip代理池功能示例
Jul 05 Python
Python守护进程实现过程详解
Feb 10 Python
在python中实现求输出1-3+5-7+9-......101的和
Apr 02 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 Python
pytorch中Schedule与warmup_steps的用法说明
May 24 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
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
PHP中遇到的时区问题解决方法
2015/07/23 PHP
PHP使用逆波兰式计算工资的方法
2015/07/29 PHP
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
Dojo 学习要点
2010/09/03 Javascript
子页向父页传值示例
2013/11/27 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
简单谈谈React中的路由系统
2017/07/25 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
详解如何在vue-cli中使用vuex
2018/08/07 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
详解React 条件渲染
2020/07/08 Javascript
three.js 将图片马赛克化的示例代码
2020/07/31 Javascript
Python中方法链的使用方法
2016/02/23 Python
python制作mysql数据迁移脚本
2019/01/01 Python
ZABBIX3.2使用python脚本实现监控报表的方法
2019/07/02 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
Expedia英国:全球最大的在线旅游公司
2017/09/07 全球购物
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
大学生专科毕业生自我评价
2013/11/17 职场文书
法学函授自我鉴定
2014/02/06 职场文书
体育专业求职信
2014/07/16 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
思想品德课教学反思
2016/02/24 职场文书
各类场合主持词开场白范文集锦
2019/08/16 职场文书
MySQL kill不掉线程的原因
2021/05/07 MySQL
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python