`
luliangok
  • 浏览: 816968 次
文章分类
社区版块
存档分类
最新评论

Django的第一印象

 
阅读更多
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的数据库中不支持外键关系)
分享到:
评论

相关推荐

    Django_mock系统登录页面所用的css

    在IT行业中,CSS(Cascading Style Sheets)是一种用于描述HTML或XML(包括如SVG、MathML等各种XML方言)文档...记住,良好的前端设计对于任何Web应用来说都是至关重要的,因为它直接影响到用户的第一印象和使用体验。

    cookiecutter-django-shop:Cookiecutter django-SHOP是基于django-CMS的电子商务网站的蓝图

    对其功能产生第一印象。 选择与您的要求最相似的配置示例。 然后用您自己的实现替换产品模型和模板。 快速操作方法 ,将 , 和安装到您的操作系统上 在Ubuntu上 检查您的默认Python版本是否为3.5或更高版本。 在...

    Django-3-Web-Development-Cookbook-Fourth-Edition:Packt发布的Django 3 Web开发指南

    《Django 3 Web开发指南》是Packt出版的一本专为Django 3框架编写的实战手册,旨在帮助开发者掌握使用Python语言构建高效、安全且...在实践中不断探索和学习,你将能够利用Django 3构建出令人印象深刻的Web应用程序。

    Django语法,例如Go的模板引擎-Golang开发

    pongo2 pongo2是pongo的后继者,它是Django语法(如templating-language)。 使用go get安装/更新(pongo2不需要任何依赖项):go get -u github.com/flosch/pongo2如果您是pongo2 pongo2的继承者,请...模板的第一印象

    Django-Tutorial:Django简介

    通过丰富的第三方应用市场,如Django Packages,Django能够轻松集成各种功能,如支付处理、邮件服务、地图API等。 4. **分层架构**: Django的MVT架构允许开发者在各个层面上进行独立工作,提供了良好的模块化...

    图书推荐系统-基于Web,使用python的Django框架开发,数据使用Scrapy进行采集+源代码+文档说明

    想到了通过两种方式来显示,一种是普通的显示,也就是一条一条评论的显示,一种是直接全部文字的词云显示,可以让读者第一时间知道其他人对这本书的第一印象 7.同时需要注意的是,所有关于通知的内容(续借,...

    Start-BootStrap-Landing-Django

    这样的页面设计至关重要,因为它直接影响到用户的第一印象和使用体验。 【标签】"HTML" 提示我们项目中会涉及到HTML(超文本标记语言)的基础知识。HTML是网页内容的结构化标记语言,用于定义网页的基本元素和布局...

    pongo2:Django语法,例如Go的模板引擎

    2 pongo2是Django语法,例如...模板的第一印象< html > < head > < title >Our admins and users</ title > </ head > {# This is a short example to give you a quick overview

    Witchcraft

    在IT行业中,字体设计是视觉传达的关键组成部分,它影响着用户对数字内容的第一印象和阅读体验。"Witchcraft"这个主题,从标题和描述来看,似乎与一种独特或者神秘的字体风格有关,可能旨在创造一种魔法、奇幻或复古...

    100套IT简历模板

    最后,一定要注意简历的排版和语法错误,这会直接影响到第一印象。使用模板时,要确保所有字段和段落都已正确填写,并进行多次校对。 总的来说,"100套IT简历模板"提供了一个全面的指南,帮助求职者在竞争激烈的IT...

    ShoppingMallProject.rar

    首先,前端设计是用户与系统交互的窗口,它决定了用户的第一印象。项目中可能包含HTML、CSS和JavaScript等文件,这些是构建网页的基本元素。HTML定义了页面结构,CSS负责样式和布局,而JavaScript则处理用户交互,如...

    程序员表白

    1. **页面设计**:这是网页的第一印象,它可能包括精心挑选的背景图片、色彩搭配以及布局设计。程序员可以使用HTML和CSS来创建网页结构和样式。HTML(HyperText Markup Language)用于定义内容,如文本、图像等;CSS...

    刘超 1410711061 论文 求职网站的设计与实现.zip

    前端界面构建关乎用户的第一印象和使用体验。刘超可能运用HTML、CSS和JavaScript构建了页面结构、样式和交互效果。现代前端框架如React或Vue.js也可能被用于提高开发效率和用户体验。他可能特别关注了响应式设计,...

    校园风光网站完整版

    首先,前端部分是网站的门面,它决定了用户的第一印象。在这个项目中,学生可能使用HTML5、CSS3和JavaScript来构建网页结构、样式和交互。HTML5用于创建网页的基本元素,如标题、段落和图片;CSS3则用于美化页面,...

    程序员简约社招简历Word模板.docx

    【程序员简约社招简历制作要点】 在撰写程序员的社招简历时,虽然模板与影视编导的简历有所差异,但核心原则是相同的:简洁、清晰地展示你的技能、经验...记住,简历是你的第一印象,所以确保它准确、专业且引人注目。

    程序员简历模板-优秀毕业生6.zip

    简历是求职过程中的第一印象,对于程序员而言,它不仅要突出学历和项目经验,还要展示编程技能、解决问题的能力以及对新技术的热情。以下是一些基于这个模板的重要知识点: 1. **个人信息**:这部分应包括全名、...

    钱某博客网站的设计与实现.pdf

    2. 首页设计:首页是用户访问网站的第一印象,通常包含轮播图、最新文章、热门话题等元素,设计时需注重视觉效果和信息的呈现方式。 3. 其他子页面设计:每个子页面都有其特定的功能,比如“关于我”页面用于介绍博...

    程序员简历模板120套.zip

    在竞争激烈的IT市场,简历的第一印象往往决定了招聘者是否愿意深入了解你。模板可以帮助程序员节省时间,同时确保简历的结构清晰、专业。这些模板可能涵盖了不同的风格,包括简洁明了的设计、注重色彩和图形的现代...

    优秀个人简历模板系列-单独封面 (52).docx

    首先,简历的封面是给人的第一印象,它应当简洁、专业且具有个人特色。"单独封面"的设计意味着你可以专注于设计一个与你的职业背景和目标相匹配的视觉元素。封面应包含你的姓名、联系方式,以及可能的一个简短而有力...

    程序员英文简历模板—单页单色风格98.zip

    【程序员英文简历模板—单页单色风格98】 在当今竞争激烈的IT行业中,一份出色的...记住,简历是向潜在雇主展示你的第一印象,所以要确保其准确、完整且引人注目。最后,多次检查拼写和语法错误,确保简历的专业性。

Global site tag (gtag.js) - Google Analytics