天下古今之庸人,皆以一惰字致败;天下古今之人才,皆以一傲字致败。——[清]曾国藩
导言
大家好,在上一篇文章里,我们一起学习了Django的视图以及路由,并且对Django的应用有了初步的认识,掌握了视图和路由的基本规则,学会了Django的应用如何创建,总之,收获满满。
这篇文章,我们接着对其进行深入一点的学习,总所周知,我们的项目离不开数据库的支持。如果不懂数据库的相关知识,学习就会无法下手,数据库就成为了绕不过去的一个坎。然而,Django的强大之处之一就是,它使用Python内置的数据库,让不懂数据库的人也可以通过一些命令进行操作。不过,在我们开发之前,最好还是去学习一些数据库的基本知识吧!例如MySQL或者是oracle。
学习目标
- Django数据库的配置(了解一下内置数据库,使用MySQL进行实践)
- Django数据库的迁移操作
Django数据库的配置
1、请打开 TestSystem/settings.py 。这是个包含了 Django 项目设置的 Python 模块。
Python内置数据库:SQLite
在settings文件里,这个配置文件使用 SQLite 作为默认数据库。无需我们进行任何配置操作。
说起配置,还记得在settings中的INSTALLED_APPS吗?这里包括了会在你项目中启用的所有 Django 应用。应用能在多个项目中使用,你也可以打包并且发布应用,让别人使用它们。
- django.contrib.admin – 管理员站点。
- django.contrib.auth – 认证授权系统。
- django.contrib.contenttypes – 内容类型框架。
- django.contrib.sessions – 会话框架。
- django.contrib.messages – 消息框架。
- django.contrib.staticfiles – 管理静态文件的框架
这里我们提一下这个设置项,毕竟挺重要的。这些应用被默认启用是为了给常规项目提供方便。
当然,这些默认被激活的应用,如果你觉得不需要,完全可以删除或者注释掉!
如果使用内置的数据库,那么Django早已帮助我们默认填写了配置项,如下图:
开始使用拓展数据库:MySQL
当我们开始一个真正的项目时,可能更倾向使用一个更具扩展性的数据库,例如MySQL,避免中途切换数据库这个令人头疼的问题。
所以,在这里我们使用MySQL进行实践,如果你还不懂,那么先去了解一下吧!这里暂时不做讲解,我默认你们都已经懂得MySQL啦!
做一些准备工作
1、我们第一步工作,首先要开启我们的MySQL服务,此处不做讲解哦。
2、打开数据库可视化软件或者命令行都可以,当然我是推荐可视化软件的,我用的是Navicat Premium 12。当然如果你感觉技术高超,使用命令行完全是可以的,但是没必要,效率不是很高对于新手来讲。
3、连接数据库(本地或云端) ,我这里是本地。
4、创建一个用于Django项目的数据库。
配置数据库设置项
现在,回到pycharm,打开settings.py,找到【DATABASES】设置项,我们现在需要配置一些有关数据库的东西。
ENGINE:可选值有 ‘django.db.backends.sqlite3’,‘django.db.backends.postgresql’,‘django.db.backends.mysql’,或 ‘django.db.backends.oracle’。
#配置项
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'polls',
"USER": "root",
"PASSWORD": "root",
"HOST": "127.0.0.1",
"PORT": "3306",
}
}
注意:我们需要安装一个包:mysqlclient,如果提示【 MySQL 8 or later is required (found 5.7.26)】就说明我们需要重新安装对应版本的数据库了哈。
#在终端中安装
pip install mysqlclient
Django数据库的迁移操作
完成以上的工作以后,我们需要在终端执行最后一条命令,完成数据库的迁移。
py manage.py migrate
执行后,可能会出现下面几种异常:
解决方案:对于数据库的版本不匹配,更换数据库服务即可,重新开启对应数据库服务以及创建数据库。
对于,缺少包,根据提示,使用pip install 安装对应的包即可。
执行成功后,终端以及数据库可视化软件界面如下:
这个 migrate 命令查看 INSTALLED_APPS 配置,并根据 TestSystem/settings.py 文件中的数据库配置和随应用提供的数据库迁移文件,创建任何必要的数据库表。
拓展知识
写到这里,这篇文章其实已经接近尾声。难说再见,这里给大家在分享一点知识。
如果你感兴趣的话,并且已经将mysql配置完成,包括环境变量。那么,可以在终端输入mysql进入数据库的命令行,使用以下命令完成数据库的另一种方式的查看
//更改数据库
use polls
//查看当前的所有数据表
SHOW TABLES;
如下图所示:
总结
行文至此,这篇文章又要和伙伴们说再见了。在这篇文章里,我们一起研究了Django的数据库以及使用拓展性的数据库的基本操作。下一篇文章,我们将开启一个新课题-模型。
感谢你的阅读和指导,下一篇文章,再见!
原创不易,仅供个人学习研究。
最美的风景是无法用相机记录的,它只该在当时被眼睛全神凝视,再在日后的想象中不受牵绊地重演。——沈诞琦