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获取当前时间的方法
Jan 14 Python
Python统计列表中的重复项出现的次数的方法
Aug 18 Python
在Python中操作字典之setdefault()方法的使用
May 21 Python
LRUCache的实现原理及利用python实现的方法
Nov 21 Python
理论讲解python多进程并发编程
Feb 09 Python
python2.7无法使用pip的解决方法(安装easy_install)
Apr 03 Python
python 对给定可迭代集合统计出现频率,并排序的方法
Oct 18 Python
详解Python3 pandas.merge用法
Sep 05 Python
详解python内置常用高阶函数(列出了5个常用的)
Feb 21 Python
10个python爬虫入门实例(小结)
Nov 01 Python
python 30行代码实现蚂蚁森林自动偷能量
Feb 08 Python
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
Jun 11 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+MYSQL的文章管理系统(一)
2006/10/09 PHP
使用迭代器 遍历文件信息的详解
2013/06/08 PHP
js跨域请求的5中解决方式
2015/07/02 Javascript
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
Uploadify上传文件方法
2016/03/16 Javascript
JS前端加密算法示例
2016/12/22 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
详解Angular路由之路由守卫
2018/05/10 Javascript
js实现网页同时进行多个倒计时功能
2019/02/25 Javascript
在Vue中创建可重用的 Transition的方法
2020/06/02 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
python基础教程之类class定义使用方法
2014/02/20 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
python实现画一颗树和一片森林
2018/06/25 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
pytorch 共享参数的示例
2019/08/17 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
使用Python pip怎么升级pip
2020/08/11 Python
Python程序慢的重要原因
2020/09/04 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
使用Html5 Stream开发实时监控系统
2020/06/02 HTML / CSS
全球在线商店:BerryLook
2019/04/14 全球购物
护理专业应届毕业生推荐信
2013/11/15 职场文书
设计师求职信模板
2014/05/06 职场文书
奉献家乡演讲稿
2014/09/16 职场文书
军训个人总结
2015/03/03 职场文书
商场广播稿范文
2015/08/19 职场文书