Django (/ˈdʒæŋgoː/) 是用python语言写的开源web开发框架(open source web framework),鼓励快速开发,并遵循MTV设计模式。其主要目的是简便、快速的开发数据库驱动的网站。
Django遵守 BSD版权,目前最新的稳定版(stable)是2011年9月发布的v1.3.1。
Django 的名称来源于比利时的爵士音乐家Django Reinhardt,他是一个吉普赛人,主要演奏吉它。
与rails一样,Django强调 松耦合、少写代码、快速开发、DRY、一致性等原则。但Django与rails在设计哲学上最大的不同在于,Django强调“显示说明优于隐含意义”,这一点来自于Python的核心原则。
这一设计哲学的不同使得Django与rails有很大的不同:Django不喜欢“魔术代码”。尽管魔术代码看起来很酷,但是存在着如下问题:
1)语法晦涩难懂,除了编程语言外,你还需要了解一门自定义的DSL
2)相对于编程语言,DSL更加不稳定,可能会经常变化
3)如果你想理解其实现方式,需要花费比较大的精力
4)魔术代码可以很容易地实现某些特定的功能,但是如果你想在此基础上做一些改变,就会变得非常困难
所以,Django不喜欢“魔术代码”,而是强调代码的
可理解、可控制。
比如《Agile Web Development with Rails》中开篇用来吸引人的那个例子,一个关于项目的Model类:
看上去很神奇对吗?但是你马上就会提出几个问题:
1)除了关联关系外,对象自身的属性在哪里定义?
2)non_discolosure_agreement是什么属性?
3)validates_xxx 之类的语法到底有多少种?
...
本文并不是以介绍rails为主,所以上述问题在这里不作回答。但是为了与Django的Model对比,还需要补全rails 模型的另外一个部分:migration。事实上,在rails中,上面的Model还需要一个db migrate 类一起才能工作:
Django的设计是 以Python类的形式定义数据模型,通过ORM与数据库联系起来。同时约定为了避免“猜谜游戏”,不应该仅仅依赖字段的命名来预示其可能的行为,而是通过关键的参数来定义操作。
上述Model类在Django中以如下简单明了的方式来实现:
Django的代码清楚明白,每一条语句都很明确。这就是Django的风格。(顺便说一句,Django的灵活性不以牺牲外键关联为代价,而rails的数据库中不支持外键关系)
分享到:
相关推荐
在IT行业中,CSS(Cascading Style Sheets)是一种用于描述HTML或XML(包括如SVG、MathML等各种XML方言)文档...记住,良好的前端设计对于任何Web应用来说都是至关重要的,因为它直接影响到用户的第一印象和使用体验。
前端设计元素是现代Web技术的重要组成部分,它决定了网站给用户的第一印象和互动体验。在这个项目中,前端元素很可能包括响应式设计、动画效果、用户友好的导航栏以及交互式购物车等功能,这些都需要HTML、CSS和...
对其功能产生第一印象。 选择与您的要求最相似的配置示例。 然后用您自己的实现替换产品模型和模板。 快速操作方法 ,将 , 和安装到您的操作系统上 在Ubuntu上 检查您的默认Python版本是否为3.5或更高版本。 在...
3. 应用图标和文件管理:图标是用户对应用的第一印象,而文件则是应用的实体。这部分功能需要支持上传应用的图标图片,以及对应用安装包、更新包等进行上传和更新管理。 4. 应用说明图和视频说明:良好的应用描述...
系统首页是用户进入系统的第一印象,其布局和功能设计经过仔细考虑,旨在提升用户体验。通过参考同行业设计元素,使系统更贴近用户日常生活,增加了用户的亲切感。 在技术层面,博主熟练使用Java、Python、C#、C、...
《Django 3 Web开发指南》是Packt出版的一本专为Django 3框架编写的实战手册,旨在帮助开发者掌握使用Python语言构建高效、安全且...在实践中不断探索和学习,你将能够利用Django 3构建出令人印象深刻的Web应用程序。
pongo2 pongo2是pongo的后继者,它是Django语法(如templating-language)。 使用go get安装/更新(pongo2不需要任何依赖项):go get -u github.com/flosch/pongo2如果您是pongo2 pongo2的继承者,请...模板的第一印象
前端设计往往决定着用户的第一印象,因此在技术上需要运用HTML5、CSS3、JavaScript等技术,制作出响应式、美观大方的界面。另外,为了提升用户体验,还需使用Ajax技术实现无需刷新页面即可与服务器通信的功能,以及...
通过丰富的第三方应用市场,如Django Packages,Django能够轻松集成各种功能,如支付处理、邮件服务、地图API等。 4. **分层架构**: Django的MVT架构允许开发者在各个层面上进行独立工作,提供了良好的模块化...
想到了通过两种方式来显示,一种是普通的显示,也就是一条一条评论的显示,一种是直接全部文字的词云显示,可以让读者第一时间知道其他人对这本书的第一印象 7.同时需要注意的是,所有关于通知的内容(续借,...
这样的页面设计至关重要,因为它直接影响到用户的第一印象和使用体验。 【标签】"HTML" 提示我们项目中会涉及到HTML(超文本标记语言)的基础知识。HTML是网页内容的结构化标记语言,用于定义网页的基本元素和布局...
2 pongo2是Django语法,例如...模板的第一印象< html > < head > < title >Our admins and users</ title > </ head > {# This is a short example to give you a quick overview
在IT行业中,字体设计是视觉传达的关键组成部分,它影响着用户对数字内容的第一印象和阅读体验。"Witchcraft"这个主题,从标题和描述来看,似乎与一种独特或者神秘的字体风格有关,可能旨在创造一种魔法、奇幻或复古...
README文件通常包含项目的基本说明、安装和运行指南等,是项目的第一印象,对于用户和开发者了解项目至关重要。readme.txt可能是对中文用户更友好的项目说明文件,内容可能与README相似。 这个项目是一个利用Python...
最后,一定要注意简历的排版和语法错误,这会直接影响到第一印象。使用模板时,要确保所有字段和段落都已正确填写,并进行多次校对。 总的来说,"100套IT简历模板"提供了一个全面的指南,帮助求职者在竞争激烈的IT...
首页为用户提供直观的第一印象和快速入口,个人中心允许用户管理自己的账户信息和旅游偏好设置。用户管理模块涉及注册、登录、权限分配等基本功能,保证系统的安全性和用户数据的私密性。旅游资讯管理、景点信息管理...
首先,前端设计是用户与系统交互的窗口,它决定了用户的第一印象。项目中可能包含HTML、CSS和JavaScript等文件,这些是构建网页的基本元素。HTML定义了页面结构,CSS负责样式和布局,而JavaScript则处理用户交互,如...
1. **页面设计**:这是网页的第一印象,它可能包括精心挑选的背景图片、色彩搭配以及布局设计。程序员可以使用HTML和CSS来创建网页结构和样式。HTML(HyperText Markup Language)用于定义内容,如文本、图像等;CSS...
前端界面构建关乎用户的第一印象和使用体验。刘超可能运用HTML、CSS和JavaScript构建了页面结构、样式和交互效果。现代前端框架如React或Vue.js也可能被用于提高开发效率和用户体验。他可能特别关注了响应式设计,...
首先,前端部分是网站的门面,它决定了用户的第一印象。在这个项目中,学生可能使用HTML5、CSS3和JavaScript来构建网页结构、样式和交互。HTML5用于创建网页的基本元素,如标题、段落和图片;CSS3则用于美化页面,...