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实现堆排序的方法详解
May 03 Python
python+selenium+autoit实现文件上传功能
Aug 23 Python
python读取与写入csv格式文件的示例代码
Dec 16 Python
python使用KNN算法手写体识别
Feb 01 Python
Python中max函数用于二维列表的实例
Apr 03 Python
django+mysql的使用示例
Nov 23 Python
Python 从相对路径下import的方法
Dec 04 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 Python
详解Python 切片语法
Jun 10 Python
python3在同一行内输入n个数并用列表保存的例子
Jul 20 Python
Python-openCV开运算实例
Jul 05 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
May 20 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去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
php实现爬取和分析知乎用户数据
2016/01/26 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
关于php 高并发解决的一点思路
2017/04/16 PHP
php实现算术验证码功能
2018/12/05 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
js 图片轮播(5张图片)
2008/12/30 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
js设置随机切换背景图片的简单实例
2017/11/12 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
详解VUE前端按钮权限控制
2019/04/26 Javascript
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
微信跳一跳小游戏python脚本
2018/01/05 Python
Python实现PS图像明亮度调整效果示例
2018/01/23 Python
python绘图模块matplotlib示例详解
2019/07/26 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
详解Python在使用JSON时需要注意的编码问题
2019/12/06 Python
印尼旅游网站:via
2017/11/12 全球购物
linux面试题参考答案(2)
2015/12/06 面试题
卫校毕业生自我鉴定
2013/10/31 职场文书
找工作最新求职信
2013/12/22 职场文书
对标管理实施方案
2014/03/12 职场文书
中秋节国旗下演讲稿
2014/09/13 职场文书
捐书仪式主持词
2015/07/04 职场文书
Django一小时写出账号密码管理系统
2021/04/29 Python
Java中的继承、多态以及封装
2022/04/11 Java/Android