• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

python 搞代码 4年前 (2022-01-08) 28次浏览 已收录 0个评论

今天小编就为大家分享一篇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 p<strong style="color:transparent">来源gaodaima#com搞(代@码网</strong>ost 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的实现的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Django将默认的SQLite更换为MySQL的实现

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址