Django开发入门——初识Django

什么是Django?

一个可以使Web开发工作愉快并且高效的Web开发框架。本质上来讲Django只不过是Python编写的一组类库,用Django开发站点就是使用这些类库编写。采用了MVC设计模式,即M模型,V视图,C控制器

历史背景

诞生于2003年Kansas州的一个网络开发小组,开始用于新闻站点的维护,后逐渐发展成为网站开发的框架。

基本组成部分

  • 对象关系映射(ORM):以python类形式定义你的数据模型,ORM将模型与数据库连接起来,你将得到一个非常容易使用的数据库API,同时也可以在Django中使用SQL语句。
  • URL分派;是正则表达式匹配URL,你可以设计任意的URL,没有框架的限定。
  • 模版系统:使用Django强大的可扩展性模版语言,可分隔设计、内容和Python代码。并且具有可继承性。
  • 表单处理:你可以方便的生成和各种各样的表单模型,实现表单的有效验证。可以方便的从你定义的模型实例中生成相应的表单。
  • Cache系统:可以挂在内存缓冲或其他的框架实现超级缓冲。
  • 会话:用户登录与权限检查。快速开发用户会话功能
  • 国际化:内置国际化系统,方便开发出多种语言的网站
  • 自动化的管理界面:不需要你花大量的工作来创建人员管理和更新内容,Django自带一个ADMIN site 类似于内容管理系统。

优缺点

缺点:

  • 系统紧耦合,如果想要用第三方库来替换原有的功能的话是很难的,比如ORM和Templates,如果想用SQLAlchemy或Mako几乎是不可能的,即便打上一些补丁用上了也会很别扭。
  • Django自带的ORM远不如SQLAlchemy强大,SQLAlchemy是Python世界事实上的ORM标准,其他框架都支持SQLAlchemy。
  • Template功能比较弱,不能插入Python代码,要写复杂一点的逻辑需要另外的Python实现Tag或Filter
  • Django的quth跟其他模块紧密结合,但是功能有点过了,用户的数据库schema都定好了,比如很多网站上要求email地址唯一,但是schema中email字段的值不是唯一的。
  • 资源不太发达,没有很好的插件体系。
    优点

  • 自主管理后台,admin interface是Django里比较吸引眼球的一项contrib,让你几乎不用写一行代码就拥有一个完整的后台管理界面。

  • 虽然自带的ORM不如SQLAlchemy强大,但也不错,一般来说不怎麼使用SQL语句,每条记录都是一个对象,而取对象的关联也很容易。
  • Django的url模块设计得看似复杂实则用到的都是很简单的正则。
  • Django的App理念很好。App可拔插,是不可多得的思想,不需要了可以直接删除,对系统影响不大
  • Django的错误提示做的足够详细。

猜你喜欢

转载自blog.csdn.net/mashaokang1314/article/details/81432260