简介

Django是什么?

Django是一个开放源代码的Web应用框架,由Python写成。
Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。
Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。

什么是Web框架?

Web框架为应用程序提供了一套程序框架, 这样你可以专注于编写清晰、易维护的代码,而无需从头做起。
简而言之:框架就是一个毛坯房,你可以在此基础上做任何所需要的修改,从而达到你想要的结果,而你就像是装修工,成品房就是结果。

什么是MVC?

MVC是一种软件开发的方法,它把代码的定义和数据访问的方法(模型)与请求逻辑 (控制器)还有用户接口(视图)分开来。这种设计模式关键的优势在于各种组件都是松散结合的.
是不是有些像,我们上学时候的三段式作文?说白了就是固定格式,让你更关注段落里面,而不用操心好不好看。
简而言之:一台电脑要有显示器,主机,外设。让他们结合起来从而能够更好的工作。

优缺点

优点

  • 完美的文档,Django的成功,我觉得很大一部分原因要归功于Django近乎完美的官方文档
  • 自助管理后台,admin interface 是Django里比较吸引眼球的一项,让你几乎不用写一行代码就拥有一个完整的后台管理界面。
  • 虽然 Django 自带的 ORM 不如 SQLAlchemy 强大,但也不弱。一般来说可以不怎么使用 SQL 语句,每条记录都是一个对象,而取对象的关联,易如反掌。
  • URL design,可以设计出非常优雅的URL。
  • 全套的解决方案,Django象Rails一样,提供全套的解决方案(full-stackframework + batteries included)
  • Django 的 App 理念很好。App 可插拔,是不可多得的思想。不需要了,可以直接删除,对系统影响不大。

缺点

  • 系统紧耦合,如果你觉得 Django 内置的某项功能不是很好,想用喜欢的第三方库来代替是很难的,比如下面将要说的 ORM、Template。要在 Django 里用 SQLAlchemy 或 Mako 几乎是不可能,即使打了一些补丁用上了也会让你觉得非常非常别扭。
  • Django 自带的 ORM 远不如 SQLAlchemy 强大,除了在 Django 这一亩三分地,SQLAlchemy 是 Python 世界里事实上的 ORM 标准,其它框架都支持 SQLAlchemy 了,唯独 Django 仍然坚持自己的那一套。Django 的开发人员对 SQLAlchemy 的支持也是有过讨论和尝试的,不过最终还是放弃了,估计是代价太高且跟 Django 其它的模块很难合到一块。
  • Template 功能比较弱,不能插入 Python 代码,要写复杂一点的逻辑需要另外用 Python 实现 Tag 或 Filter。
    让人纠结的 auth 模块,Django 的 auth 跟其它模块结合紧密,功能也挺强的,就是做的有点过了,用户的数据库 schema 都给你定好了,这样问题就来了,比如很多网站要求 email 地址唯一,可 schema 里这个字段的值不是唯一的,纠结是必须的了。

如何开始

  • 必要的python基础
  • 官方文档:前面我们说了,Django有很好的文档系统,所以开始必须是官方文档了https://www.djangoproject.com/,不过是全英文的,对于英文弱鸡,只能望洋兴叹了,不过我还是建议大家尽量去看,大不了有道翻译嘛。
  • 源代码:Django源码:https://github.com/django/django

说明

本人也是学了没多久,这是学习整理的笔记(难免有出错地方,还请指教),学习过程中部分文献参考网上教程,书籍等,如有权限问题请联系本人及时处理,为了尊重作者劳动成果,转载请注明出处。
版权所有:www.lowett.com

坚持原创技术分享,您的支持将鼓励我继续创作!