Django简介、ORM、核心模块

837 阅读6分钟

Django简介

    Django是一种开源的大而且全的Web应用框架,是由python语言来编写的。他采用了MVC模式,什么是MVC?大家不要着急,MVC这么好的东西我在下面会精细的讲一下!Django最初是被开发来用于管理劳伦斯出版集团下的一些以新闻为主内容的网站。一款CMS(内容管理系统)软件。并于 2005 年 7 月在 BSD 许可证下发布。这套框架是以比利时的吉普赛爵士吉他手 Django Reinhardt 来命名的。

Django版本

至今Django版本已经更新到Django3.0.5,官网下载https://www.djangoproject.com/download/

Django最新版本

说到Django版本不得不提及python版本,Python3.8 的热乎劲还没过去,Python 就又双叒叕要更新了。近日,3.9 版本(www.python.org/downloads/r… alpha 版已经开源。从文档中,我们可以看到官方透露的对 dict、math 等组件增加的新特性,以及下一步的开发进展。

Python最新版本

Django优点

强大的数据库功能

    用 python 的类继承,几行代码就可以拥有一个丰富、动态的数据库操作接口(API),如果需要,你也能执行 SQL 语句ORM(Object-Relational Mapping“对象-关系-映射”),它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库

自带强大的后台功能

    在admin.py中写入需要实现功能的代码,几行简单的代码就可以实现你当管理员的梦。再也不用为设计管理员而发愁了!

优雅的网址

    在urls.py中用正则匹配网址,传递到对应的函数,随意你自己定义,网址可以如你所想,如你所愿。 (需要注意的是:正则是一种独立的语法,并不是哪个语言所拥有的。)

具有模板系统

    模板系统大大的降低了开发者头疼脑热的概率。因为模板系统设计简单,容易扩展。代码,样式分开设计。查找更清晰,修改更容易!

缓存系统

    Django和memcached、redis或者其他的缓存系统联用,提高了页面的加载速度。让用户的体验度更好了!

templates 文件夹views.py 中的函数渲染 templates 中的 Html 模板,得到动态内容的网页,当然可以用缓存来提高速度。

国际化

    这么好的东西,想不走上国际化都难啊。想要网页显示不同语言,比如中文、英文、还有各种语言。只需要在一个文件的设置中稍微那么修改一下。页面就会穿上各种语言的外衣。

Django 的 App 理念很好。

    App 可插拔,是不可多得的思想。不需要了,可以直接删除,对系统影响不大。

怎么样?Django是否强大到不可想象的地步了?不过大家也不用高兴的太早了。因为代码还是要写的,只不过用上了Django开发网站的时候更快速,更便捷了而已!

Django具有以下特点:

  • 功能完善、要素齐全:该有的、可以没有的都有,常用的、不常用的工具都用。Django提供了大量的特性和工具,无须你自己定义、组合、增删及修改。但是,在有些人眼里这被认为是‘臃肿’不够灵活,发挥不了程序员的主动能力。(一体机和DIY你更喜欢哪个?^-^)
  • 完善的文档:经过十多年的发展和完善,Django有广泛的实践经验和完善的在线文档(可惜大多数为英文)。开发者遇到问题时可以搜索在线文档寻求解决方案。
  • 强大的数据库访问组件:Django的Model层自带数据库ORM组件,使得开发者无须学习其他数据库访问技术(SQL、pymysql、SQLALchemy等)。当然你也可以不用Django自带的ORM,而是使用其它访问技术,比如SQLALchemy。
  • 灵活的URL映射:Django使用正则表达式管理URL映射,灵活性高。
  • 丰富的Template模板语言:类似jinjia模板语言,不但原生功能丰富,还可以自定义模板标签。
  • 自带免费的后台管理系统:只需要通过简单的几行配置和代码就可以实现一个完整的后台数据管理控制平台。
  • 完整的错误信息提示:在开发调试过程中如果出现运行错误或者异常,Django可以提供非常完整的错误信息帮助定位问题。

好了,开始正式跟大家说MVC 、MVT、ORM

大部分开发语言中都有 MVC

MVC 框架的核心思想是: 解耦.即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库

降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用

M 表示 model,主要用于对数据库层的封装

V 表示 view,用于向用户展示结果

C 表示 controller,是核心,用于处理请求、获取数据、返回结果

M代表的是模型(Model), V代表的是视图(View), C代表的是控制(Contrle)

MVT

Django 是一款 python 的 Web 开发框架

与 MVC 有所不同,属于 MVT 框架(是不是跟没说一样?不过我真的找不到更合适的语句了)

M 表示 model,负责与数据库交互

V 表示 view,是核心,负责接收请求、获取数据、返回结果

T 表示 template,负责呈现内容到浏览器

什么是ORM?

 

给大家一个图吧:

 

最后在给大家说一下Django中的核心模块:在坚持一下就看完了

Django核心模块

urls.py

网址入口,关联到对应的 views.py 中的一个函数(或者 generic 类),访问网址就对应一个函数。小心在设置函数的时候写错单词哦!

views.py

处理用户发出的请求,从 urls.py 中对应过来, 通过渲染 templates 中的网页可以将一些想要看到的内容输入到网页上。

models.py

与数据库操作相关,存入或读取数据时用到这个,当然用不到数据库的时候 你可以不使用。

forms.py

表单,用户在浏览器上输入数据提交,对数据的验证工作以及输入框的生成等工作。

templates 文件夹

views.py 中的函数渲染 templates 中的 Html 模板,得到动态内容的网页,当然可以用缓存来提高速度。这么好的东西,不用确实可惜!

admin.py

后台,这个就是可以用很少代码就能实现后台管理的神奇东东

settings.py

Django 的设置,配置文件,比如 DEBUG 的开关,静态文件的位置等。

结语

总之,Django的功能很强大,包括DRF等一些框架,要学的还有很多,一起加油哇