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实现递归版汉诺塔示例(汉诺塔递归算法)
Apr 08 Python
Python 实现网页自动截图的示例讲解
May 17 Python
Python图像处理之简单画板实现方法示例
Aug 30 Python
Python GUI布局尺寸适配方法
Oct 11 Python
Python实例方法、类方法、静态方法的区别与作用详解
Mar 25 Python
Python使用Pandas库实现MySQL数据库的读写
Jul 06 Python
python创建属于自己的单词词库 便于背单词
Jul 30 Python
使用python实现希尔、计数、基数基础排序的代码
Dec 25 Python
Python实现随机生成任意数量车牌号
Jan 21 Python
keras中的loss、optimizer、metrics用法
Jun 15 Python
python3.7 openpyxl 在excel单元格中写入数据实例
Sep 01 Python
Python基于pillow库实现生成图片水印
Sep 14 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对文件进行加锁、解锁实例
2015/01/23 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
PHP 8新特性简介
2020/08/18 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
JQuery教学之性能优化
2014/05/14 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
Bootstrap选项卡动态切换效果
2016/11/28 Javascript
JQuery实现定时刷新功能代码
2017/05/09 jQuery
js封装成插件的步骤方法
2017/09/11 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
2018/11/02 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
2020/08/03 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
深入Python解释器理解Python中的字节码
2015/04/01 Python
python获取本地计算机名字的方法
2015/04/29 Python
Python lxml模块安装教程
2015/06/02 Python
Python进程间通信Queue实例解析
2018/01/25 Python
用十张图详解TensorFlow数据读取机制(附代码)
2018/02/06 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
简述安装Slackware Linux系统的过程
2012/05/08 面试题
开工仪式主持词
2014/03/20 职场文书
高中生操行评语
2014/04/25 职场文书
党员政治学习材料
2014/05/14 职场文书
实习生个人总结范文
2015/02/28 职场文书
刑事辩护词范文
2015/05/21 职场文书
电影红河谷观后感
2015/06/11 职场文书
2016年校园植树节广播稿
2015/12/17 职场文书
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS
Java实现二分搜索树的示例代码
2022/03/17 Java/Android