当前位置: 首页 > article >正文

Django讲课笔记01:初探Django框架

文章目录

  • 一、学习目标
  • 二、课程导入
    • (一)课程简介
    • (二)课程目标
    • (三)适用人群
    • (四)教学方式
    • (五)评估方式
    • (六)参考教材
  • 三、新课讲授
    • (一)Django简介
    • (二)Django版本
      • 1. Django 1.11(2017年3月发布)
      • 2. Django 2.0(2017年12月发布)
      • 3、Django 2.1(2018年8月发布)
      • 4、Django 2.2(2019年4月发布)
      • 5、Django 3.0(2019年12月发布)
      • 6、Django 3.1(2020年8月发布)
      • 7、Django 3.2(2021年4月发布)
      • 8、Django 4.0(2022年12月发布)
      • 9、Django 5.0(2023年12月发布)
    • (三)Django与Python的对应关系
    • (四)Django的特点
    • (五)MVC模式
      • 1、MVC概念
      • 2、MVC示意图
      • 3、MVC优势
    • (六)MVT模型
      • 1、MTV定义
      • 2、MTV示意图
      • 3、MTV优势
    • (七)Web开发前端和后端
      • 1、Web前端开发
      • 2、Web后端开发
  • 四、课堂小结

一、学习目标

  1. 了解Django框架
  2. 了解Django版本与Python版本的对应关系
  3. 了解Django的特点
  4. 了解MVC模式的优势
  5. 了解MTV模式的优势

二、课程导入

(一)课程简介

  • Django是一款基于Python语言的开源Web应用框架,以其高效、简洁的设计而备受开发者欢迎。本课程旨在向学生介绍Django框架的基本概念、核心特性以及与Python语言的结合。在学习Django之前,建议学生具备HTML、CSS和JavaScript的基础知识,以更好地理解和应用框架。

(二)课程目标

  1. Django框架基础:学生将了解Django框架的核心概念,包括模型(Model)、视图(View)、模板(Template)等。
  2. 版本与对应关系:学习Django不仅需要了解其基础,还需要明确不同版本与Python版本之间的对应关系,确保在实际开发中选择合适的环境。
  3. Django特点:了解Django的特点,包括对象关系映射(ORM)、URL设计、模板系统等,为构建高效的Web应用奠定基础。
  4. MVC与MVT:对比传统的MVC(Model-View-Controller)模式和Django采用的MVT(Model-View-Template)模式,理解其优势和适用场景。

(三)适用人群

  • 本课程适合有一定Python编程基础,同时对Web开发有兴趣的学生。特别推荐已经学习过HTML、CSS和JavaScript的同学,以更好地理解Django框架的前后端交互。

(四)教学方式

  1. 理论讲解:介绍Django框架的基本概念、版本与对应关系、特点以及MVT模型等。
  2. 实际操作:通过实例演示,带领学生搭建Django开发环境,创建简单的Web应用,并进行基本的功能开发。
  3. 项目实践:学生将参与一个小型Django项目,通过实际开发提升对框架的熟练程度。

(五)评估方式

  1. 考勤:占总成绩20%,要求学生积极参与课堂讨论和实际操作。
  2. 作业:占总成绩30%,包括完成课后作业、小项目以及相关实践任务。
  3. 期末检测:占总成绩50%,考察学生对Django框架的理解程度,包括理论知识和实际应用能力。

(六)参考教材

  • 《精通Django 3 Web开发》
    在这里插入图片描述
  • Django 4 中文教程(https://www.w3cschool.cn/django4/)
    在这里插入图片描述
  • 通过本课程的学习,学生将建立起对Django框架的深刻理解,为未来的Web开发工作奠定坚实的基础。

三、新课讲授

(一)Django简介

  • Django,诞生于2005年7月,是一款遵守BSD版权的开源Web应用框架。以其MVT设计模式著称,模型(Model)、视图(View)和模板(Template)的巧妙结合使得Web开发更为高效。Django不仅提供了强大的对象关系映射(ORM)功能,还拥有灵活的URL设计和可扩展的模板系统。作为Python语言的杰出代表,Django在构建高质量、可维护性强的Web应用方面表现出色。

(二)Django版本

在这里插入图片描述

  • Django是一个开源的Web应用框架,自2017年以来,经历了多个版本的演化和更新,不断提升其功能和性能。以下是Django从2017年到2023年的主要版本演化情况:

1. Django 1.11(2017年3月发布)

  • 引入了Subquery表达式,增强了数据库查询功能。
  • 提供了更好的Template模块,改进了模板渲染引擎。

2. Django 2.0(2017年12月发布)

  • 弃用了对Python 2的支持,仅支持Python 3.4及以上版本。
  • 引入了path()和re_path()等新的URL模式匹配函数。
  • 改进了Model和QuerySet,增加了新的数据库特性。

3、Django 2.1(2018年8月发布)

  • 加强了对Python 3.7的支持。
  • 引入了django.db.models.JSONField,提供对JSON数据的原生支持。
  • 增加了django.test模块中的新功能,简化了测试流程。

4、Django 2.2(2019年4月发布)

  • 提供了对MariaDB数据库的支持。
  • 引入了django.test.Client的ASGI支持,为异步视图提供更好的测试工具。
  • 更新了security.txt模板,帮助网站所有者定义安全报告的接收方式。

5、Django 3.0(2019年12月发布)

  • 引入了支持ASGI(异步服务器网关接口)的Django Channels,使Django能够处理异步请求。
  • 移除了对Python 3.5的支持,仅支持Python 3.6及以上版本。
  • 改进了Model和QuerySet,增加了更多数据库相关功能。

6、Django 3.1(2020年8月发布)

  • 加强了django.db.models.JSONField,支持更多数据库后端。
  • 引入了StrictDateTime,在模型中使用DateTimeField时提供更加严格的日期时间处理。
  • 更新了EmailValidator,支持国际化域名(IDN)。

7、Django 3.2(2021年4月发布)

  • 提供了对PostgreSQL 13的支持。
  • 引入了django.views.View的新特性,支持基于类的视图的更多定制选项。
  • 改进了Model,支持更多数据库相关特性。

8、Django 4.0(2022年12月发布)

  • 加强对Python 3.9及以上版本的支持。
  • 引入更多先进的功能,以适应Web开发的最新趋势和需求。

9、Django 5.0(2023年12月发布)

  • Django 5.0 支持 Python 3.10、3.11 和 3.12。开发团队建议用户使用每个 Python 分支的最新版本。
  • Django 5.0 引入了字段组 (field group) 和字段组模板 (field group templates) 的概念。该特性简化了 Django 表单字段相关元素的渲染,例如标签、小部件、帮助文本和错误等。
  • 新的 Field.db_default 参数用于设置数据库计算 (database-computed) 的默认值。
  • 新的 GeneratedField 支持创建数据库生成的列。该字段可在所有支持的数据库后端上使用,以创建始终根据其他字段计算的字段。

(三)Django与Python的对应关系

Django版本Python版本
Django 1.8Python 2.7, 3.2, 3.3, 3.4, 3.5
Django 1.9, 1.10Python 2.7, 3.4, 3.5
Django 1.11Python 2.7, 3.4, 3.5, 3.6
Django 2.0Python 3.4, 3.5, 3.6, 3.7
Django 2.1, 2.2Python 3.5, 3.6, 3.7
Django 3.0, 3.1Python 3.6, 3.7, 3.8
Django 4.0, 4.1, 4.2Python 3.8, 3.9, 3.10
Django 5.0Python 3.10, 3.11, 3.12

(四)Django的特点

  • Django以其卓越的特点而闻名于业界,让我们一起深入了解这些特性。

  • 首先,Django采用了强大的对象关系映射(ORM)机制,通过映射类构建数据模型,实现了业务对象与数据库的精准映射。这使得开发者可以更专注于业务逻辑,而无需过多关心数据库底层细节。

  • 在URL设计方面,Django展现了其灵活性和强大性。它支持设计任意URL,并可运用正则表达式实现更加复杂的URL匹配,为开发者提供了极大的设计自由度。

  • Django的模板系统同样令人惊叹。它提供了一套可扩展的模板语言,支持模板之间的继承,使得页面设计变得高效而灵活。开发者可以轻松创建出美观而富有交互性的页面。

  • 在表单处理方面,Django引入了便捷的表单模型生成机制,同时内置了有效性检验功能,使得表单处理变得更为简单而安全。

  • Django还以其完善的Cache系统脱颖而出,支持多种缓存方式,为应对高流量和大规模应用提供了强有力的支持。

  • Auth认证系统是Django的又一瑰宝,它不仅提供了全面的用户认证和权限设置功能,而且具有高度可扩展性,满足了各种复杂业务场景的需求。

  • 国际化是当今Web应用不可或缺的一部分,而Django的内置国际化系统使得开发多语言网站变得轻而易举。这为开发者打开了全球用户的大门,让应用更具国际竞争力。

  • 最后,Django还引以为豪的是其强大的Admin后台系统。内置的管理系统不仅易于使用,而且具有强大的扩展性,让开发者可以轻松管理和监控应用。

  • 总的来说,Django凭借其ORM、灵活的URL设计、强大的模板系统、方便的表单处理、完善的Cache系统、全面的Auth认证系统、国际化支持和强大的Admin后台系统等特点,成为众多开发者心中的首选。

(五)MVC模式

1、MVC概念

  • MVC(Model-View-Controller)是一种软件架构模式,将软件系统分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。其优势在于低耦合、开发迅速、部署便捷、可重用性高、维护成本低。模型负责业务逻辑和数据处理,视图展示用户界面,控制器协调模型和视图之间的交互。简而言之,MVC模式提供了一种有序且可维护的软件设计方案。

2、MVC示意图

  • MVC简易图
    在这里插入图片描述
  • 用户操作流程图
    在这里插入图片描述

3、MVC优势

  • MVC(Model-View-Controller)模式的优势显而易见。首先,其低耦合性使得各组件相互独立,修改其中一个不会影响其他部分,提高了系统的灵活性。其次,MVC架构能够加速开发过程,通过明确的分工,开发人员能够并行工作,提高了开发效率。部署方便,模块化的设计使得系统部署更为简便。可重用性高和维护成本低是由于模块化结构的设计,使得代码可维护性强,容易重用,降低了系统维护的难度。MVC的优势在于提供了一种清晰、高效、可维护的软件设计范式。

(六)MVT模型

1、MTV定义

  • MTV(Model-Template-View)模式是Django框架的软件设计范式。模型(Model)负责数据处理,视图(View)处理业务逻辑和调用模型、模板(Template)负责页面渲染。MTV模式在实现各组件间松耦合的同时,保持了清晰的分工,使得开发者能够更专注于业务逻辑和用户界面。通过URL分发器协调各组件工作,实现了灵活、可维护的Web应用开发,使得开发过程更为高效。

2、MTV示意图

在这里插入图片描述

3、MTV优势

  • MTV(Model-Template-View)模式是Django框架的软件设计典范,具有显著的优势。该模式通过模型(Model)、模板(Template)、视图(View)的清晰分工,实现了业务逻辑与数据模型的高度解耦。这种松耦合性使得开发更为灵活、可维护,并提高了代码的可重用性。MTV模式同时充分发挥了Django框架在处理URL分发和页面渲染方面的优势,使得Web应用的开发更加高效,为开发者提供了强大的工具和结构。

(七)Web开发前端和后端

1、Web前端开发

  • Web前端开发是构建用户在浏览器中交互的一部分,涉及HTML、CSS和JavaScript等技术。HTML定义页面结构,CSS负责样式美化,JavaScript实现页面动态交互。前端开发关注用户体验,确保网站在各种设备上都具有良好的可访问性。现代前端开发涉及众多框架和工具,如React、Vue和Webpack等,提高开发效率。前端工程师需关注不断变化的技术趋势,同时与后端开发协同工作,共同构建功能强大、用户友好的Web应用。

2、Web后端开发

  • Web后端开发是构建网站、应用程序背后逻辑和数据处理的关键部分。后端负责处理用户请求,与数据库交互,执行业务逻辑,并生成动态内容供前端展示。常见后端开发语言包括Python、Java、Node.js等,框架如Django、Flask、Spring等提供了便捷工具。合理的后端设计确保系统稳定、安全,并支持前后端协同工作。通过API,后端与前端实现数据交互,共同构建出功能强大、响应迅速的Web应用。

四、课堂小结

  • 在本节课中,我们深入探讨了Django框架的基本概念、版本演化、特点以及与Python版本的对应关系。学生们不仅了解了Django的核心组件MVT模型,还学习了MVC模式的优势。通过版本对比和演化历程,我们更好地理解了Django的发展轨迹。此外,课程还简要介绍了Web前端和后端开发,强调了它们在构建功能强大、用户友好的Web应用中的协同作用。在接下来的实际操作和项目实践中,学生将有机会深入应用所学知识,提升Django开发技能。

http://www.kler.cn/news/163129.html

相关文章:

  • 面试宝典之自我介绍
  • 【嵌入式开发 Linux 常用命令系列 4.2 -- .repo 各个目录介绍】
  • 集简云 x 零售企业丨快速集成有赞商城和微盛企微管家,实现私域运营自动化
  • YOLOv8分割训练及分割半自动标注
  • Android MVVM+coroutine+retrofit+flow+hilt
  • LSTM_预测价格问题_keras_代码实操
  • 喜讯:加速度商城系统全系列产品品牌全新升级为Shopfa
  • Java工程找不到javax.xml.bind.annotation包
  • 【flink番外篇】1、flink的23种常用算子介绍及详细示例(3)-window、distinct、join等
  • STM32 map文件详解
  • Kubernetes(K8s 1.27.x) 快速上手+实践,无废话纯享版
  • running小程序重要技术流程文档
  • 【ELK03】ES 索引的Mapping映射详解、数据类型和settings属性设置
  • 算法:常见的链表算法
  • 插入排序——直接插入排序和希尔排序(C语言实现)
  • 如何进行更好的面试回复之缓存函数在项目中的性能优化?
  • Advanced Renamer
  • 利用R语言heatmap.2函数进行聚类并画热图
  • Shell脚本如何使用 for 循环、while 循环、break 跳出循环和 continue 结束本次循环
  • Vue学习笔记-Vue3中的计算属性与监视属性
  • 【数据结构】拆分详解 - 二叉树的链式存储结构
  • 消费升级:无人零售的崛起与优势
  • 【MATLAB源码-第97期】基于matlab的能量谷优化算法(EVO)机器人栅格路径规划,输出做短路径图和适应度曲线。
  • git操作:使用vscode集成
  • Spring Cloud Gateway中对admin端点进行认证
  • 自动补全的 select antd react
  • php+mysql期末作业小项目
  • kafka学习笔记--安装部署、简单操作
  • luceda ipkiss教程 43:画渐变圆弧型波导
  • ModuleNotFoundError: No module named ‘dlib‘