Django学习全纪录:编写你的第一个 Django 应用,Django内置数据库的配置,以及扩展性的数据库介绍和配置

本文主要是介绍Django学习全纪录:编写你的第一个 Django 应用,Django内置数据库的配置,以及扩展性的数据库介绍和配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

天下古今之庸人,皆以一惰字致败;天下古今之人才,皆以一傲字致败。——[清]曾国藩

导言

大家好,在上一篇文章里,我们一起学习了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

执行后,可能会出现下面几种异常:
异常1
异常2
解决方案:对于数据库的版本不匹配,更换数据库服务即可,重新开启对应数据库服务以及创建数据库。
对于,缺少包,根据提示,使用pip install 安装对应的包即可。

执行成功后,终端以及数据库可视化软件界面如下:
在这里插入图片描述
在这里插入图片描述
这个 migrate 命令查看 INSTALLED_APPS 配置,并根据 TestSystem/settings.py 文件中的数据库配置和随应用提供的数据库迁移文件,创建任何必要的数据库表。

拓展知识

写到这里,这篇文章其实已经接近尾声。难说再见,这里给大家在分享一点知识。
如果你感兴趣的话,并且已经将mysql配置完成,包括环境变量。那么,可以在终端输入mysql进入数据库的命令行,使用以下命令完成数据库的另一种方式的查看

//更改数据库
use polls
//查看当前的所有数据表
SHOW TABLES;

如下图所示:
在这里插入图片描述

总结

行文至此,这篇文章又要和伙伴们说再见了。在这篇文章里,我们一起研究了Django的数据库以及使用拓展性的数据库的基本操作。下一篇文章,我们将开启一个新课题-模型。
感谢你的阅读和指导,下一篇文章,再见!

原创不易,仅供个人学习研究。

最美的风景是无法用相机记录的,它只该在当时被眼睛全神凝视,再在日后的想象中不受牵绊地重演。——沈诞琦

这篇关于Django学习全纪录:编写你的第一个 Django 应用,Django内置数据库的配置,以及扩展性的数据库介绍和配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/711406

相关文章

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示