zoukankan      html  css  js  c++  java
  • Django(1)初识Django

    前言

    Django是一个开放源代码的Web应用框架,由Python写成,最初用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站,即CMS(内容管理系统)软件,于2005年7月在BSD许可证下发布,这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。Django采用了MTV的框架模式,即模型Model、模板Template和视图(Views),三者之间各自负责不同的职责。

    • 模型:数据存取层,处理与数据相关的所有事物,例如如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
    • 模板:表现层,处理与表现相关的决定,例如如何在页面或其他类型的文档中进行显示。
    • 视图:业务逻辑层,存取模型及调取恰当模板的相关逻辑,模型与模板的桥梁

    Django的主要目的是简便、快速地开发数据库驱动的网站。它强调代码复用,多个组件可以很方便地以插件形式服务于整个框架。Django有许多功能强大的第三方插件,可以很方便地开发出自己的工具包,这使得Django具有很强的可扩展性。此外,Django还强调快速开发和DRY(Do Not Repeat Yourself)原则。Django基于MTV的设计十分优美,其具有以下特点:

    • 对象映射关系(Object Relational Mapping, ORM):通过定义映射类来构建数据模型,将模型与关系数据库连接起来,使用ORM框架内置的数据库接口可实现复杂的数据操作。
    • URL设计:开发者可以设计任意的URL(网站地址),而且还支持使用正则表达式设计
    • 模板系统:提供可扩展的模板语言,模板之间具有可继承性
    • 表单处理:可以生成各种表单模型,而且表单具有有效性检验功能
    • Cache系统:完善的缓存系统,可支持多种缓存方式
    • Auth认证系统:提供用户认证、权限设置和用户组功能,功能扩展性强
    • 国际化:内置国际化系统,方便开发出多种语言的网站
    • Admin后台系统:内置Admin后台管理系统,系统扩展性强
       

    Django2的新特性

    • 简化URL路由语法:使得Django.urls.path()方法的语法更简单。功能的导入由模块Django.urls实现,如from Django.urls import include,path,re_path
    • Admin后台系统:支持主流移动设备并新增属性ModelAdmin.autocomplete_fields和方法ModelAdmin,get_autocomplete_fields()
    • 用户认证:PBKDF2密码哈希默认的迭代次数从36000增加到100000
    • Cache(缓存):cache.set_many()现在返回一个列表,包含插入失败的键值
    • 视图类:ContextMixin,extra_context属性允许在View.as_view()中添加上下文
    • Pagination(分页):增加Paginator.get_page()`,可以处理各种非法页面参数,防止异常
    • Templates(模板):提高Engine.get_default()在第三方模块的用途
    • Vaildators(验证器):不允许CharField及其子类的表单输入为空
    • File Storage(文件存储):File.open()可以用于上下文管理器,例如with file open() as f
    • 连接MySQL不再使用mysqldb模块,改为mysqlclient,两者之间并没有太大的使用差异
    • Management Commands(管理命令):inspectdbMySQL的无符号整数视作PositiveIntegerField或者PositiveSmallIntegerField字段类型
  • 相关阅读:
    JS实现动画的四条优化方法
    如果全球的沙子都对你发起DDoS攻击,如何破?
    阿里云实时计算的前世“功”今生“能”
    IPv6时代已来:双十一中的IPv6大规模应用实践
    支撑双十一的网络引擎:飞天洛神
    【阿里云总监课第四期】时髦的云原生应用怎么写?
    阿里云重磅发布RDS for SQL Server AlwaysOn集群版
    4K超清,2500万人在线,猫晚直播技术全解读
    猫晚流量再创记录,阿里云直播方案护航优酷2500万用户体验
    TableStore最佳实践:轻松实现轨迹管理与地理围栏
  • 原文地址:https://www.cnblogs.com/jiakecong/p/14755263.html
Copyright © 2011-2022 走看看