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函数式编程指南(二):从函数开始
Jun 24 Python
json跨域调用python的方法详解
Jan 11 Python
python实现单链表中删除倒数第K个节点的方法
Sep 28 Python
基于pycharm导入模块显示不存在的解决方法
Oct 13 Python
Django利用cookie保存用户登录信息的简单实现方法
May 27 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
Aug 21 Python
python argparser的具体使用
Nov 10 Python
MNIST数据集转化为二维图片的实现示例
Jan 10 Python
Python tkinter和exe打包的方法
Feb 05 Python
python Plotly绘图工具的简单使用
Mar 03 Python
Python提取视频中图片的示例(按帧、按秒)
Oct 22 Python
sklearn中的交叉验证的实现(Cross-Validation)
Feb 22 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 join函数应用
2011/05/04 PHP
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
php 生成短网址原理及代码
2014/01/23 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
SharePoint 客户端对象模型 (一) ECMA Script
2011/05/22 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
javascript中callee与caller的区别分析
2015/04/20 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
10道典型的JavaScript面试题
2017/03/22 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
小程序使用watch监听数据变化的方法详解
2019/09/20 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
2021/01/25 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
[01:02:26]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第二场 1月18日
2021/03/11 DOTA
解决PyCharm中光标变粗的问题
2017/08/05 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
Python运维自动化之nginx配置文件对比操作示例
2018/08/29 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
Python读写Excel表格的方法
2021/03/02 Python
优秀求职信范文分享
2013/12/19 职场文书
工地资料员岗位职责
2013/12/31 职场文书
毕业论文评语大全
2014/04/29 职场文书
开工仪式策划方案
2014/05/23 职场文书
建筑安全生产责任书
2014/07/22 职场文书
小学教研工作总结2015
2015/05/13 职场文书
关于幸福的感言
2015/08/03 职场文书