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 相关文章推荐
Python3.2中的字符串函数学习总结
Apr 23 Python
Python统计日志中每个IP出现次数的方法
Jul 06 Python
python读取视频流提取视频帧的两种方法
Oct 22 Python
Python求解任意闭区间的所有素数
Jun 10 Python
python traceback捕获并打印异常的方法
Aug 31 Python
Python队列RabbitMQ 使用方法实例记录
Aug 05 Python
pytorch GAN伪造手写体mnist数据集方式
Jan 10 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
基于python实现模拟数据结构模型
Jun 12 Python
Python可以用来做什么
Nov 23 Python
Python趣味实战之手把手教你实现举牌小人生成器
Jun 07 Python
详解Python类和对象内容
Jun 22 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
实用函数7
2007/11/08 PHP
PHP中常用的字符串格式化函数总结
2014/11/19 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
JSON辅助格式化处理方法
2013/03/26 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
Google Maps API地图应用示例分享
2014/10/23 Javascript
基于javascript代码实现通过点击图片显示原图片
2015/11/29 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
2016/02/14 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
关于Angular2 + node接口调试的解决方案
2017/05/28 Javascript
Vue渲染函数详解
2017/09/15 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
js绘制一条直线并旋转45度
2020/08/21 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
Python可跨平台实现获取按键的方法
2015/03/05 Python
python读写ini配置文件方法实例分析
2015/06/30 Python
python3连接MySQL数据库实例详解
2018/05/24 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
详解Python3中的 input() 函数
2020/03/18 Python
Python实现汇率转换操作
2020/05/03 Python
Python字符串的15个基本操作(小结)
2021/02/03 Python
10张动图学会python循环与递归问题
2021/02/06 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
英国行业制服供应商:Alexandra
2019/09/14 全球购物
建材业务员岗位职责
2013/12/08 职场文书
初级会计求职信范文
2014/02/15 职场文书
地方白酒代理协议书
2014/10/25 职场文书
检察院起诉书
2015/05/20 职场文书
教你利用python实现企业微信发送消息
2021/05/23 Python