原来你是这样的Django

刘江     2018年08月28日    分类: 技术分享   标签: Django   阅读:  1395     评论2


引用本文,必须在起始处粗体大字号标明来源!原创不易,请大家共同维护!


1. Django的起源

Django的诞生源于非常朴素的现实需求。Django的创始人员工作于《世界在线》这个网页新闻站点,需要非常快速的迭代和更新页面上的内容,属于典型的快节奏新闻编辑工作,从内容生成到页面上线通常只有很短的时间。

在2003秋季,为了适应工作的特点,两名主创人员(Adrian Holovaty和Simon Willison)抛弃了PHP,转而使用Python来开发网站。

在开发网站的过程中,他们不断发现一些共性的代码和工作,于是把这些内容抽取出来,重复利用,形成一个“可填空”的Web公用框架,从而减少工作量,提高更新速度。

在2005年夏季,Django进展迅速,并得到大量的支持,于是决定开源代码,与世界分享。

2. “Django”的名字由来和发音

Django是以Django Reinhardt爵士的名字命名的,他是20世纪30年代到50年代初的爵士吉他手。嗯嗯,最好的吉他手之一。Django的名字和电影《被解救的姜戈》没有一毛钱关系。在程序圈,类似Python和Django这种起个另类的名称大概是所有宅男的恶趣味吧。

那么它是如何发音的呢?其中的大写D不发音,读作JANG-oh,汉字音译‘姜戈’。

3. Django稳定可靠吗?

必须的,相当稳定,否则也不会这么流行了。像DISQUS、Instagram、Pinterest和Mozilla这样的公司已经使用Django很久了。Django可处理每秒超过5万次点击量的请求。

DjangoSites.org这个站点(https://djangosites.org/),可以查看到有哪些网站是使用Django开发的。

4. Django的框架结构

当今,与开发时间相比,硬件成本是廉价的,所以Django不注重个体性能,而关注于开发速度。Django使用‘shared-nothing’架构,这意味着你可以在任何层次中添加组件,比如数据库服务、缓存服务,Web服务器。

5. 为什么Django使用MTV而不是标准的MVC架构

Django的开发人员认为标准的MVC名称是否准确是可以辩论的。

他们认为,MVC中的“视图”view描述了要呈现哪些数据,而不是你如何看到数据。因此,在MTV中一个视图就代表一个url路由后被调用的Python函数。而控制器C,Django认为它们属于Web框架内在的机制和功能,与开发者关联不大,不是主要工作,而更重要的是模板T,也就是基本HTML文件。

本质上MTV和MVC是一样的。只是在关注点和用词上有些区别。

6. 为什么有的功能别的Web框架有而Django没有?

来听听Django开发人员的回答:这世界上有很多非常棒的Web框架,我们不反对在适当的时候借鉴它们。但是,Django是一个设计精密的框架,并且也在不断进化中,所以请不要用因为某些框架具备这个功能这种理由来要求Django也要这样那样。

嗯嗯,外交式的辞令和不软不硬的钉子,这很Django!

7. 为什么Django宁肯自己写小工具也不使用其它的Python第三方库呢?

当Django最初编写时,阿德里安和西蒙花了相当多的时间研究各种可用的Python库。最后得出的结论是没有一个库是必须在Django中使用的,这帮人自认为是挑剔的完美主义者。

随着时间推移,Django的开发者们也发现了在其它的一些开源库中实现了一些同样的功能,而且大家写的差不多,水平也接近(另外一种承认自己在重复造轮子的说法)。但是,已经无法将这些外部代码集成到Django里来了,因为blablablabla......已经在一些生产环境中编写、测试和实现了Django的核心代码并很好的满足了需求,所以就这样吧,哈哈,就是这么任性。

这还没完,最后还是要嘴硬来一句:实际上现有的框架和工具没有一个能够百分之百地符合我们的理念和要求。我说过的,我们很挑剔。

附带安利Django的理念:《Django设计哲学》(https://docs.djangoproject.com/en/2.1/misc/design-philosophies/)

8. Django是一个内容管理系统吗(CMS)?

不,Django不是一个CMS,或者任何一种“关键产品”。它是一个Web框架,是一个建立网站的编程工具。

例如,将Django与Drupal(一个CMS)之类的东西进行比较没有多大意义,因为Django是用来创建Drupal之类的东西的。

当然,Django的自动管理站点(Admin)非常棒,非常节省时间,并且和CMS看起来有点像。但是Admin只是Django框架的一个模块,代表不了Django整体。此外,尽管Django为构建各种CMS应用程序提供了一些便利,但这并不意味着它仅仅适合于构建CMS应用程序!

9. 如何引用Django?

关于在出版物、学术论文、期刊、网络文章等不同场合下如何引用Django没有一个确定的格式,最好的方法是随机应变。下面有一个APA style风格的范例,供参考:

Django (Version 2.1) [Computer Software]. (2018). Retrieved from https://djangoproject.com.

一些使用上的建议:


评论总数: 2



user_image
Django是最好的语言框架

Django是最好的语言框架

user_image
博文

博主,你这博文都是半夜写的。


最新博客:

原来你是这样的Django
Django类视图
Django2.1新手图文入门教程
Django开发常用插件
Django2.1 版本更新说明!独家发布!