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

 更新时间:2019年11月18日 09:01:20   作者:(.*)释然  
今天小编就为大家分享一篇Django将默认的SQLite更换为MySQL的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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实现requests发送/上传多个文件的示例

    python实现requests发送/上传多个文件的示例

    今天小编就为大家分享一篇python实现requests发送/上传多个文件的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Django 登录注册的实现示例

    Django 登录注册的实现示例

    本文主要介绍了Django 登录注册的实现示例,这是做网页登录和注册基本上都是必要一步,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Python机器学习工具scikit-learn的使用笔记

    Python机器学习工具scikit-learn的使用笔记

    这篇文章主要介绍了Python机器学习工具scikit-learn的使用笔记,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01
  • Python Flask实现图片验证码与邮箱验证码流程详细讲解

    Python Flask实现图片验证码与邮箱验证码流程详细讲解

    这篇文章主要介绍了如何利用Python生成随机的图片验证码与邮箱验证码,验证码是一种区分用户是计算机还是人的公共全自动程序,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起试试
    2022-10-10
  • opencv 获取rtsp流媒体视频的实现方法

    opencv 获取rtsp流媒体视频的实现方法

    这篇文章主要介绍了opencv 获取rtsp流媒体视频的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • python实现数组插入新元素的方法

    python实现数组插入新元素的方法

    这篇文章主要介绍了python实现数组插入新元素的方法,涉及Python中insert方法的相关使用技巧,需要的朋友可以参考下
    2015-05-05
  • Python实现TOPSIS分析法的示例代码

    Python实现TOPSIS分析法的示例代码

    TOPSIS法是一种常用的综合评价方法,其能充分利用原始数据的信息,其结果能精确反应各评价方案之间的差距。本文将利用Python实现这一方法,感兴趣的可以了解一下
    2023-02-02
  • Python的selenium模块使用find_element_by_id无效解决方案

    Python的selenium模块使用find_element_by_id无效解决方案

    这篇文章主要介绍了Python的selenium模块使用find_element_by_id无效解决方案,find_element_by_id无效可能是因为版本问题,而4.5.0版本不支持页面对象的定位find_element_by_id方法,以前版本支持这些进行元素定位,需要的朋友可以参考下
    2023-12-12
  • python 将dicom图片转换成jpg图片的实例

    python 将dicom图片转换成jpg图片的实例

    今天小编就为大家分享一篇python 将dicom图片转换成jpg图片的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 基于Python实现自动抠图小程序

    基于Python实现自动抠图小程序

    这篇文章主要为了大家利用用Python制作一款界面化的抠图小程序,文中的示例代码讲解详细,对我们学习Python有一定的帮助,感兴趣的可以学习一下
    2022-01-01

最新评论