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实现网页链接提取的方法分享
Feb 25 Python
Python运用于数据分析的简单教程
Mar 27 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
Dec 14 Python
使用Python编写Prometheus监控的方法
Oct 15 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
python 发送json数据操作实例分析
Oct 15 Python
Python-opencv 双线性插值实例
Jan 17 Python
python用pip install时安装失败的一系列问题及解决方法
Feb 24 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
Mar 08 Python
python将数据插入数据库的代码分享
Aug 16 Python
如何理解python接口自动化之logging日志模块
Jun 15 Python
python画条形图的具体代码
Apr 20 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
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
2014/04/20 Javascript
对比分析json及XML
2014/11/28 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
bootstrap实现二级下拉菜单效果
2017/11/23 Javascript
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
Angular封装搜索框组件操作示例
2019/04/25 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
python发送arp欺骗攻击代码分析
2014/01/16 Python
python求素数示例分享
2014/02/16 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
三个python爬虫项目实例代码
2019/12/28 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
python打开音乐文件的实例方法
2020/07/21 Python
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
财务会计专业应届毕业生求职信
2013/10/18 职场文书
员工评语大全
2014/01/19 职场文书
食品业务员岗位职责
2014/03/18 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
个人银行贷款担保书
2014/04/01 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
安全演讲稿开场白
2014/08/25 职场文书
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏
Beekeeper Studio开源数据库管理工具比Navicat更炫酷
2022/06/21 数据库