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 相关文章推荐
python2.7删除文件夹和删除文件代码实例
Dec 18 Python
浅析AST抽象语法树及Python代码实现
Jun 06 Python
Python递归函数定义与用法示例
Jun 02 Python
python 简单的绘图工具turtle使用详解
Jun 21 Python
python的文件操作方法汇总
Nov 10 Python
python中正则表达式的使用方法
Feb 25 Python
Python 实现在文件中的每一行添加一个逗号
Apr 29 Python
django2.2安装错误最全的解决方案(小结)
Sep 24 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
Jan 04 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
Python3获取cookie常用三种方案
Oct 05 Python
基于Python和openCV实现图像的全景拼接详细步骤
Oct 05 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基础陷阱题(变量赋值)
2012/09/12 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
PHP数组相关函数汇总
2015/03/24 PHP
关于PHP文件的自动运行方法分析
2016/05/13 PHP
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
js解决movebox移动问题
2016/03/29 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
百度多文件异步上传控件webuploader基本用法解析
2016/11/07 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
Vue实现日历小插件
2019/06/26 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
[52:39]完美世界DOTA2联赛PWL S3 CPG vs Forest 第一场 12.16
2020/12/17 DOTA
python遍历数组的方法小结
2015/04/30 Python
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
Python正则表达式知识汇总
2017/09/22 Python
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
Sanic框架流式传输操作示例
2018/07/18 Python
在django中,关于session的通用设置方法
2019/08/06 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
英国领先的瓷砖专家:Walls and Floors
2018/04/27 全球购物
美国最大的存储市场:SpareFoot
2018/07/23 全球购物
医大实习自我鉴定
2013/12/07 职场文书
童装店创业计划书
2014/01/09 职场文书
简历中的自我评价范文
2014/02/05 职场文书
心理健康课教学反思
2014/02/13 职场文书
企业办公室岗位职责
2014/03/12 职场文书
服务标兵事迹材料
2014/05/04 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
学校运动会加油词
2015/07/18 职场文书