Django框架中各部分的开发理念是怎样的?

开发理念不仅是Django开发者开发Django之初的指导思想,也是Django发展和完善之时应遵循的准则。Django的使用者在使用Django框架时不应与Django开发者的理念相悖。了解Django开发理念有助于理解Django框架。下面将介绍Django的开发理念。

总体上,Django遵循各部分松耦合、代码尽可能精简、保证Web开发效率、避免重复、明确优于隐式(保证不熟悉框架的人也能了解框架的工作,或能快速掌握框架的工作)这些理念,同时官方对Django的模型、数据库API、URL设计、模板、视图以及缓存框架这些部分的设计理念做了进一步细化,具体分别如下:

1.模型

①明确优于隐式。模型不应仅基于字段名来假设某些行为,模型的行为应基于关键字参数和字段类型。

②定义模型表现的数据以及与数据相关的所有信息。模型应按照Martin Fowler(马丁·福勒)的Active Record(活动记录)设计模型,一个模型类对应关系数据库中的一个表,一个模型类的实例对应表中的一行记录。

2.数据库API

①保证效率。应尽量少地执行SQL语句、在内部优化SQL语句。

②简洁、强大的语法。数据库API语法应以尽可能少的语法,实现丰富且准确的语义。

③提供方便执行原始SQL语句的方式。应认识到数据库API只是一个便捷方式,而非最终的全部手段。Django框架应具备容易编写自定义SQL语句的功能。

3.URL设计

①松耦合。Django应用中的URL不应与底层Python代码耦合。

②无限灵活。网址应尽可能灵活,任何可想到的URL地址都应被允许。

③鼓励最佳实践。Django框架应使开发人员足够容易地设计出漂亮的URLs。

④对URL进行定义。技术上,foo.com/bar和foo.com/bar/是两条不同的URL,搜索引擎与爬虫会将其视为独立的页面,Django会将其转为“标准”的URL,让搜索引擎与爬虫正确识别。

4.模板系统

①逻辑与表现分离。模板系统的基本目标是控制表现方式和表现方式逻辑,它不应支持超出基本目标的功能。

②避免冗余。大多数动态网站会使用一些网站整体通用的设计,如页眉、页脚、导航栏等。Django模板系统应可以很容易地存储这些元素,从而减少代码的重复。

③与HTML解耦。模板系统不应被设计成只能输出HTML,它应该同样擅长生成纯文本,或其他基于文本的格式。

④XML不应被用于模板语言。如果使用XML去解析模板,在编辑模板的过程中会引入很多人为错误,在模板处理中导致不可接受的开销。

⑤预设设计师的能力。Django模板系统不承担保证模板可以在编辑器中友好显示的功能,它期望模板编写者有直接编辑HTML文本的能力。

⑥显式对待空格。模板系统不应该支持空格实现更多的功能。如果模板包含空格,那么系统在处理文本时只需直接地显示空格。

⑦不要发明一种编程语言。模板系统的目标是提供足够的、具有编程风格的功能,比如分支和循环,而不是发明一种编程语言;同时模板语言应避免高级逻辑。

⑧安全和保障。拆箱即用的模板系统应禁止包含恶意代码,如删除数据库记录的命令。这也是模板系统不允许有Python代码的另一个原因。

⑨可扩展。模板系统应意识到高阶的模板作者可能想扩展其技术。

5.视图

①简洁。编写视图应和编写Python函数一样简单,开发人员不应该在函数执行时实例化一个类。

②使用请求对象。视图应该能够访问一个请求对象——一个存储关于当前请求的元数据的对象。对象应该直接传递给视图函数,而不必从全局变量访问请求数据的视图函数。

③松耦合。视图不应该关心开发人员使用哪种模板——甚至不关心开发人员是否使用模板系统。

④GET和POST的区别。框架应使得GET和POST数据很容易区分。

6.缓存框架

①更少的代码。缓存应该尽可能快,因此,围绕缓存的所有后端框架代码都应该保持在绝对的最小值,特别是对于getO操作。

②一致性。缓存API应该为不同的缓存后端提供一致的接口。

③可扩展性。缓存API应该基于开发者的需求,在应用程序级别上是可扩展的。

免责声明:文章内容来自互联网,本站仅作为分享,不对其真实性负责,如有侵权等情况,请与本站联系删除。
转载请注明出处:Django框架中各部分的开发理念是怎样的? https://www.dachanpin.com/a/cyfx/11066.html

(0)
使用Python可视化工具有哪些好处?
上一篇 2023-05-12 02:49:38
MySQL8.0版本怎样进行CentOS系统配置?
下一篇 2023-05-12 02:50:41

相关推荐

  • 自主创业与产业扶持相结合:牧民阿加的脱贫路

    4月25日清晨,玉树藏族自治州三江源感恩林内,玉树市扎西科街道办事处甘达村的阿加像往常一样来植树,今天,阿加还把妻子也一起叫来了。 4月份是玉树植树的“黄金期”,阿加从去年开始,一有富余时间就会来栽树,有时候还会带上妻子,而每天栽树的收入也相当可观。 “我们受雇到这里来栽树,栽一棵树是4.5元,这几天每天都来,除了植树造林外还要对去年没成活的树木补植补栽。”…

    创业分享 2023-05-24
  • 90后情侣卖绿豆饼 甜蜜创业

    现在小店开了起来,可能还会面临许多意想不到的难题,但吴昊和邢雪松说,再难也要坚持,坚持就会看到彩虹。吴昊说,现在他们还是学生,还有学业,等到毕业后,他们会全身心投入到小店的经营中来,把小店干起来,创出自己的品牌。“无论干什么,最重要的是要做出自己的品质。”邢雪松补充一句。 邢雪松和吴昊读的是专科,三年制,现在课程比较少,两个人都不想浪费时光,都想干点什么事,…

    创业分享 2023-05-30
  • 【411大会】脉宝云店赵桠霖:从0到1,平台给予创业者的最大赋能

      2019年的社交电商,你可以放心的选择。但是请一定记住,你要选择的是有长远的规划,强大的背书,乃至最重要的一点,能够帮助你个人成长以及实现不断成长的企业,来给到你自己一个创业的选择。   但是我们不得不承认,在这几年的发展过程当中,微商作为社交电商的初级阶段和萌芽,并没有在社交机制上建立完善的营销系统和商业模式。   只有让真正的创业者留下,有了专业的服…

    创业分享 2023-05-13
  • 安阳创业担保贷款投放跑出“加速度”

    安阳创业担保贷款投放跑出“加速度” 图为贺振在自己开的超市里整理水果。 王慧敏 摄   中新网河南新闻9月8日电  “到账了!”近日,位于汤阴县的安阳市百世康商贸有限公司负责人刘冰洋收到了130万元创业担保贷款到账的信息,兴奋之情溢于言表。这是安阳市创业担保贷款集中攻坚行动发放的最后一笔贷款,也是第2736笔贷款。今年6月至8月,安阳市共发放创业担…

    2023-05-10
  • 双龙出海怒掀涨停潮 新高后创业板剑指何方

    (原标题:双龙出海怒掀涨停潮 新高后创业板剑指何方) 强势市场最典型的特征就是不管盘中如何惊涛骇浪,大盘最终都能化险为夷,通俗点来说就是指数维持强势拒绝调整。周三A股的走势就很好体现了这一点,虽然在金融等权重拖累下,大盘一度下探至3260点附近,午后还有中字头的突然“搅局”,但最终依然止跌翻红并象征性刷新了反弹新高,又一次对市场的质疑进行强力回应。 当然,这…

    2023-05-21

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:362039258@qq.com

工作时间:周一至周五,9:30-16:30,节假日休息