Django(1)初识Django
前言
Django是一个开放源代码的Web应用框架,由Python写成,最初用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站,即CMS(内容管理系统)软件,于2005年7月在BSD许可证下发布,这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。Django采用了MTV的框架模式,即模型Model、模板Template和视图(Views),三者之间各自负责不同的职责。
- 模型:数据存取层,处理与数据相关的所有事物,例如如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
- 模板:表现层,处理与表现相关的决定,例如如何在页面或其他类型的文档中进行显示。
- 视图:业务逻辑层,存取模型及调取恰当模板的相关逻辑,模型与模板的桥梁
Django的主要目的是简便、快速地开发数据库驱动的网站。它强调代码复用,多个组件可以很方便地以插件形式服务于正egg框架。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(管理命令):
inspectdb将MySQL的无符号整数视作PositiveIntegerField或者PositiveSmallIntegerField字段类型
Django(1)初识Django的更多相关文章
- python的Web框架:初识Django
web应用程序 本质 socket服务端 浏览器本质是一个socket客户端 1. 服务器程序 socket请求 接受HTTP请求,发送HTTP响应. 比较底层,繁琐,有专用的服务器软件,如:Apac ...
- Django框架(一)-Django初识
Django初识 一.Web框架本质—自己实现Web框架 1.所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端 import socket sk = sock ...
- 初识Django —Python API接口编程入门
初识Django —Python API接口编程入门 一.WEB架构的简单介绍 Django是什么? Django是一个开放源代码的Web应用框架,由Python写成.我们的目标是用Python语言, ...
- 巨蟒python全栈开发django2:初识django
今日内容大纲: 1.起飞版web框架 2.自定制框架的流程 3.jinja2模板渲染初识 4.MVC&&MTV 5.django版本介绍及django安装 6.django初识(一些操 ...
- web框架之初识Django
目录 一.web框架 1.1什么是web框架 1.2自制的简易web框架 1.3三大主流web框架简介 Django Flask Tornado 1.4动态网页与静态网页 二.初识Django框架 2 ...
- 初识DJango——MTV模型
一.Django—MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Template(模版):负责如何把页面展示给用户 View(视图):负责业务逻 ...
- 初识django框架
django框架 1.框架介绍 根据第一部分内容介绍,我们可以总结出一个web框架应该包含如下三部分:a.sockect服务.b.根据不同的url调用不同函数(包含逻辑).c.返回内容(模板渲染).常 ...
- 一个初学者的辛酸路程-初识Django
前言: 主要是关于JavaScript的高级部分以及Django 主要内容: 一.jQuery 事件绑定: DOM事件绑定: -直接在标签上绑定 第一种: $('.title').click(func ...
- Web框架之Django_01初识(三大主流web框架、Django安装、Django项目创建方式及其相关配置、Django基础三件套:HttpResponse、render、redirect)
摘要: Web框架概述 Django简介 Django项目创建 Django基础必备三件套(HttpResponse.render.redirect) 一.Web框架概述: Python三大主流Web ...
- 初识 Django
HTTP协议 HTTP(hypertext transport protocol),即超文本传输协议.这个协议详细规定了浏览器和万维网服务器之间互相通信的规则. HTTP就是一个通信规则,通信规则规定 ...
随机推荐
- Nginx配置静态文件服务从入门到精通
作者:三十三重天 博客:http://www.zhouhuibo.club 通过学习和分享的过程,将自己工作中的问题和技术总结输出,希望菜鸟和老鸟都能通过自己的文章收获新的知识,并付诸实施. 引言 使 ...
- java例题_34 用指正对三个数排序
1 /*34 [程序 34 三个数排序] 2 题目:输入 3 个数 a,b,c,按大小顺序输出. 3 程序分析:利用指针方法. 4 */ 5 6 /*分析 7 * 指针方法的本质是按地址传值,将a,b ...
- CDN域名解析问题
CDN域名解析问题 之前配置CDN域名解析,碰到一个配置带www的域名和不带www的域名,这里就有个解析的坑,已经将cdn域名都配置好的,但是一直访问不了,白屏现象 后面排除源站问题和cdn配置问题, ...
- 云计算和AI时代,运维应该如何做好转型?
云计算和AI时代,运维应该如何做好转型? 今天我们来聊一聊,在云计算和AI时代,运维应该如何做好转型?今天的内容可以说是我们前面运维组织架构和协作模式转型的姊妹篇.针对运维转型这个话题,谈谈我的思考和 ...
- [hash-bfs]USACO 3.2 Magic Squares 魔板
魔 板 魔板 魔板 题目描述 在成功地发明了魔方之后,拉比克先生发明了它的二维版本,称作魔板.这是一张有8个大小相同的格子的魔板: 1 2 3 4 8 7 6 5 我们知道魔板的每一个方格都有一种颜色 ...
- IDEA 主题下载
IDEA中主题可以更换,大家可以直接到 http://www.riaway.com/ 网站或 http://color-themes.com/?view=index 网站,直接下载自己喜欢的主题. ...
- 2019年度CMMI V2.0性能报告
2020年底,CMMI研究院发布<2019 CMMI V2.0 Performance Report Summary>,渠成团队进行了全文翻译并简单总结如下.(文末提供中英双版PDF下载) ...
- [面试仓库]CSS面试题汇总-定位篇
一,relative.absolute 的区别 我们还是来说常见的地方.首先就是relative,absolute的区别: relative是依据自身来定位的 absolute则是依据离其最近一层 ...
- [解决] Assertion `srcIndex < srcSelectDimSize` failed.
在finetune Chinese GPT2的时候遇到如上错误,错误原因index越界,原始代码中给定的输入长度是1024,但是我使用模型可接受的输入长度是512,把输入长度都改为512,错误解决
- Anacoda下报错conda command not found 以及TypeError: __new__() got an unexpected keyword argument 'serialized_options'
在anacoda安装完成后,执行conda list命令,显示command not found 解决方法: 对于anaconda 2 , 输入export PATH=~/anaconda2/bin ...