Django将默认的SQLite更换为MySQL的实现


Posted in Python onNovember 18, 2019

1、注释默认的SQLite3配置:

blogproject/settings.py
'''
DATABASES = {
 'default': {
  'ENGINE': 'django.db.backends.sqlite3',
  'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
 }
}
'''

2、添加MySQL配置(配置你自己的mysql库前提是你已经有能够供自己使用的MySQL库了)

DATABASES = {
 'default': {
  'ENGINE': 'django.db.backends.mysql', #固定配置
  'HOST': '127.0.0.1',#mysql地址
  'PORT': '3306',#端口号
  'NAME': 'guest',#库名(组名)
  'USER': 'root',#用户
  'PASSWORD': '123456',#密码
  'OPTIONS': {'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", },
 }
}

迁移数据库

为了让 Django 完成翻译,使用我们在modele.py已经创建好的这些数据库表,我们请出我的工程管理助手 manage.py。激活虚拟环境,切换到 manage.py 文件所在的目录下,分别运行 python manage.py makemigrations和 python manage.py migrate命令:

PS D:\xuexi\python\\django2\blogproject> python manage.py makemigrations
Migrations for 'blog':
 blog\migrations\0001_initial.py:
 - Create model Category
 - Create model Post
 - Create model Tag
 - Add field tags to post
PS D:\xuexi\python\web接口开发\django2\blogproject> python manage.py migrate
Operations to perform:
 Apply all migrations: admin, auth, blog, contenttypes, 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 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 blog.0001_initial... OK
 Applying sessions.0001_initial... OK

仅供参考你的数量可能没有这么多

当我们执行了 python manage.py makemigrations后,Django 在 blog 应用的 migrations\ 目录下生成了一个 0001_initial.py文件,这个文件是 Django 用来记录我们对模型做了哪些修改的文件。目前来说,我们在 models.py 文件里创建了 3 个模型类,Django 把这些变化记录在了 0001_initial.py里。

不过此时还只是告诉了 Django 我们做了哪些改变,为了让 Django 真正地为我们创建数据库表,接下来又执行了 python manage.py migrate命令。Django 通过检测应用中 migrations\ 目录下的文件,得知我们对数据库做了哪些操作,然后它把这些操作翻译成数据库操作语言,从而把这些操作作用于真正的数据库。

如果你使用的是mysql会生成0001_auto_20180507_2145.py

如果你需要在mysql和SQLite3之间切换你需要重新执行python manage.py makemigrations和 python manage.py migrate命令,而且你原来库中的数据不会转移(执行完上面两个命令只会在新的数据库中创建modele.py中的表)。

以上这篇Django将默认的SQLite更换为MySQL的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用python统计文件行数示例分享
Feb 21 Python
Python设计模式之观察者模式实例
Apr 26 Python
python中as用法实例分析
Apr 30 Python
python的中异常处理机制
Aug 30 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
Django框架中间件定义与使用方法案例分析
Nov 28 Python
使用pyqt 实现重复打开多个相同界面
Dec 13 Python
django API 中接口的互相调用实例
Apr 01 Python
判断Threading.start新线程是否执行完毕的实例
May 02 Python
Python读取xlsx数据生成图标代码实例
Aug 12 Python
python 逆向爬虫正确调用 JAR 加密逻辑
Jan 12 Python
Python爬虫定时计划任务的几种常见方法(推荐)
Jan 15 Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 #Python
详解Django配置优化方法
Nov 18 #Python
python爬虫爬取笔趣网小说网站过程图解
Nov 18 #Python
基于python操作ES实例详解
Nov 16 #Python
Python爬取豆瓣视频信息代码实例
Nov 16 #Python
Pandas数据离散化原理及实例解析
Nov 16 #Python
python实现XML解析的方法解析
Nov 16 #Python
You might like
php生成高清缩略图实例详解
2015/12/07 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
JS滚轮事件onmousewheel使用介绍
2013/11/01 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
jQuery基于ID调用指定iframe页面内的方法
2016/07/06 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
利用node.js制作命令行工具方法教程(一)
2017/06/22 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
python单线程实现多个定时器示例
2014/03/30 Python
跟老齐学Python之list和str比较
2014/09/20 Python
Python生成随机MAC地址
2015/03/10 Python
Python编程实现正则删除命令功能
2017/08/30 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
Python多线程多进程实例对比解析
2020/03/12 Python
基于Python绘制个人足迹地图
2020/06/01 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
python切割图片的示例
2020/11/12 Python
团委书记的竞聘演讲稿
2014/04/24 职场文书
广告宣传策划方案
2014/05/21 职场文书
航海技术专业毕业生推荐信
2014/07/09 职场文书
火锅店的活动方案
2014/08/15 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
爱国主义教育基地观后感
2015/06/18 职场文书
生日祝酒词大全
2015/08/10 职场文书
百年校庆宣传标语口号
2015/12/26 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL