《django3.0应用开发详解》李向军|(epub azw3 mobi pdf)电子书下载-云顶国际集团

时间: 2023-05-15 10:20:40  163 epub epub

本站仅收录第三方网站资源,购买请前往官方网站购买正版

图书名称:《django3.0应用开发详解》

【作 者】李向军
【丛书名】web开发技术丛书
【页 数】 308
【出版社】 北京:机械工业出版社 , 2021.10
【isbn号】978-7-111-69090-0
【分 类】软件工具-程序设计
【参考文献】 李向军. django3.0应用开发详解. 北京:机械工业出版社, 2021.10.

图书封面:

图书目录:

《django3.0应用开发详解》内容提要:

全书共15章。首先概述django3的特性,然后介绍django环境搭建情况以及默认情况下的工程内容,阐述了django的各类管理命令及其用法,django路由调用的各项使用方式,模型的属性、类型、关联模型类型以及模型元数据,django的请求响应机制、cbv概念、模板的定义及模板变量的使用,紧接着介绍系统模板标签、系统模板过滤器、数据库相关内容、常用中间件、管理应用模块的主要对象以及相关的自定义设置形式。z后说明部署以及发布流程并列举了django使用中发生的一些常见问题。

《django3.0应用开发详解》内容试读

:

短道道围新范的世增后可世量简短道留留增圆备量

第1章choler 1

django简介

作为本书的第1章,将简略介绍django的来历及特点,并详细介绍django3.0的一些新特性,为后面的学习打下基础。

1.1什么是django

django是python编程语言驱动的一个基于mvc风格的web应用程序框架,最初是被开发用于管理劳伦斯出版集团(lawrence journal world)旗下的一些以新闻内容为主的网站的;2005年7月,该框架在github站点以bsd许可证形式发布。

djange0于2012年3月8日发布1.0版本,2017年12月2日发布2.0版本,2019年12月2日发布3.0版本,目前最新的版本为2020年8月4日发布的3.1版本

由于该程序框架是基于python开发的,因此django版本与python版本之间有很强的关联,具体见表1-1。

表1-1 django与python版本之间的关联

django版本

python版本

1.0

至少2.3

1.2

至少2.4

1.3

至少2.5

1.11

2.7、3.4、3.5、3.6、3.7

2.0

3.4、3.5、3.6、3.7

3.0、3.1

3.6、3.7、3.8

2,django3.0应用开发详解

1.2 django与其他web框架的对比

目前,运用python作网站开发的web框架很多,主要有django、flask与tornado。下面我们对这三种框架进行简要的对比(见表1-2)。

表1-2 django、flask与tornado的对比

框架名称

比较内容

django

flask

tornado

最早发布时间

2005年11月4日

2010年4月16日

2010年7月23日

开源协议

bsd-3-clause

bsd-3-clause

apache-2.0

框架体量

大和全,自带orm、temp

除了核心模块和jinja2模板以外

除了核心模块,'没有其

late、view,为重量级框架

没有其他模块,为轻量级框架

他模块,为轻量级框架

模块之间耦合程度高,几

扩展性

乎不可能组配其他外部功能模

作为微型框架,它可以自由组配

块,但是可以增加并丰富它的

可扩展外部功能模块

外部功能模块

middlerware/contrib适合新手,适合一般网站

适用性

对新手来说不好控制,适合能力

与flask类似

快速开发

强的开发团队开发

如果考虑安全性,对于

需要熟悉各种外部功能模块,在

开发效率

般网站,它的开发效率是非常使用初期开发效率比较低,后期会

介于flask、django之间

高的

有所提高

orm及模板处理速度相对

处理性能

orm采用sqlalchemy,性能较

较慢

与flask类似

1.3

django3.0的新特性

django3.0沿用了django2.0诸多特性,但也对一些方面进行了适当的调整,形成了

3.0版本独有的特性。django3.0与django2.0的不同之处主要在于以下十几个方面。

1.python兼容性

django3.0与django3.1支持python3.6、python3.7与python3.8,django2.2.x会是最后一个支持python3.5及更早版本的系列。对于第三方django应用,官方建议应用开发者放弃对django2.2及更早版本的支持。

2.asgl的支持

新增对asgi的支持,让django逐渐支持异步功能。这是django对现有web服务器网关接口(python web server gatway interface,wsgi)模式支持的补充。

3.数据库支持

支持使用mariadb10.1或更高版本的数据库。不再支持postgresql9.4版本,只支持

postgresql9.5及以上版本。2021年不再支持oracle12.1版本,只支持oracle12.2及以上

第1章django简介3

版本。

4.postgresql的排斥约束

增加了类django..contrib.postgres.constraints.exclusionconstraint,用来在数据库postgresql上添加排除约束。使用meta.constraints选项将定义的约束添加到模型。

5.过滤器表达式

表达式输出结果为booleanfield类型的值,可以直接在queryset过滤器中使用,而不必先注释,再针对注释进行过滤。

6.用于选择字段的枚举类

增加了模型关联的类textchoices、integerchoices和choices,这些类可用于定义field.choices。.其中为文本和整数字段提供了textchoices类型和integerchoices类型。在choices类允许定义为其他具体的数据类型兼容的枚举。

7.缓存控制

在缓存控制方法patch cache control()中增加private标识的判断逻辑,该方法被addnever cache headers调用。在缓存控制方法patch cache control()中增加no-cache标识的判断逻辑,该方法被cache control调用(django3.l新增功能)。

8.文件存储管理

提供了django..core.files.storage..storage.get alternative name(0方法,用来根据已有文件名随机生成一个新文件名称。在一定程度上避免因多次上传同名文件而带来的存储影响。django.core.files.storage.filesystemstorage的save()方法采用pathlib.path类的路径解析(django3.1新增功能)。

9.表单管理

表单管理是django使用forms的重要形式,在django3.0中有如下调整:

口在表单的基础类中添加了can order属性,该属性默认为false;当该属性为true时,可在表单页面中增加排序属性。默认情况下排序属性以数值形式体现,用户可通过修改属性ordering widget或重写基类方法get ordering widget()来改变页面中排序属性的显示形式。

口调整类django.forms.modelchoicelterator的choice(方法,使该方法以django.forms.

modelchoicelterator value实例形式返回。类django.forms.modelchoicelterator用于表单字段modelchoicefield和modelmultiplechoicefield(django3.l新增功能)。口表单字段datetimefield(django.forms.datetimefield)支持iso8601时间格式传递,

接收配置节点date input formats与datetime input formats的信息

并将字段信息转换为时间值(django3.1新增功能)。

口调整类django.forms.multiwidget的初始传入参数widgets,使该参数可传递自定义的

4 django3.0应用开发详解

subwidget字典信息(django3.1新增功能)。调整类django.forms.boundfield,增加属性widget type,用于根据属性值动态调整表单显示信息(django3.1新增功能)。

10.语言国际化

在语言国际化使用方面,django3.0有如下调整:

口增加配置节点language cookie httponly,用来为语言cookie设置http-

only标志,该节点默认为false。当设置为true时,客户端javascript脚本将被禁止访问语言cookie。

口增加配置节点language cookie samesite,用来为语言cookie设置same

site标志,该节点默认为none(django3.l新增功能),表示语言cookie可被跨站点请求发送

口增加配置节点language cookie secure,用来为语言cookie增加安全访问控制,该节点默认为false。当设置为true时,标识只有在https连接时才会发送语言cookie.

口添加了对乌兹别克语、阿尔及利亚阿拉伯语、伊博语、吉尔吉斯语、塔吉克语、土库曼语的支持和翻译(django3.1新增功能)。

11.日志管理

为类django.utils.log.adminemailhandler增加属性reporter class,该属性值为djangoviews..debug.exceptionreporter子类的名称标识信息,该属性值用来自定义错误回溯格式。设置了此属性后,当配置节点debug设置为false,admin站点发生异常时,将按照自定义错误回溯格式向页面反馈信息

12.针对诸多管理命令进行的调整

对于框架管理命令,django3.0做了如下调整:

口调整了命令的使用方式。调整了命令showmigrations,使该命令在参数verbosity值为2或3时,使用参数list将会显示应用时间信息;命令dbshell增加了对

postgresql数据库的客户端tls证书的支持;命令inspectdb会在字段外键存在唯一性或者受主键约束时,对类型为onetoonefield进行自我核查;命令startapp与startproject的template参数支持存放形式为xz的档案(.tar.xz、.txz)和形式为lzma的档案(.tar.lzma、.tlz)。

口增加了命令的参数。为命令compilemessages增加了参数ignore,.用于忽略对指定文件夹扫描编译文件:为命令check增加了参数database,用于指定数据库别名进行数据库检测(diango3.1新增功能);为命令migrate增加了参数check,用于在数据迁移时检测是否存在未应用的迁移脚本,如果存在,则退出生成数据库对象(django

3.1新增功能);为命令check增加了特别参数判断,以“-”分隔符作为判断依据,可根据不同数据库客户端设置不同的连接参数(diango3.1新增功能);增加了所有

第1章django简介5

命令的通用参数skip-checks,用来跳过运行命令之前正在运行的系统检查。

口为通用命令异常类django.core.management..commanderror增加初始化参数returncode,该参数用于自定义命令的退出状态(django3.1新增功能)。

13.模型扩展

对于模型的使用,django3.0做了如下调整:

口增加了各类函数。增加了md5函数,用于将文本类型字段或表达式转换为基于

md5的散列字符串:增加了sha1函数,用于将文本类型字段或表达式转换为基于

sha1的散列字符串:增加了sha224函数,用于将文本类型字段或表达式转换为基

于sha224的散列字符串,需要注意的是,该函数不适用于oracle数据库;增加了

sha256函数,用于将文本类型字段或表达式转换为基于sha256的散列字符串;增

加了sha384函数,用于将文本类型字段或表达式转换为基于sha384的散列字符

串;增加了sha512函数,用于将文本类型字段或表达式转换为基于sha512的散

列字符串:增加了sign函数,用于以(-1,0,1)形式返回数值类型字段或表达式的符号;为模型基础类django.db.backends..base.basedatabasefeatures增加了方法allowsgroup_by_.selected_pks_on_model(),该方法允许对子句进行优化,默认情况下,该方法仅适用于postgresql数据库;增加了字段类型jsonfield,用于json字符串的编码与解码(django3.1新增功能):新增时间方法extractlso weekday,用iso-8601标准提取datefield和datetimefield类型数据的星期值(django3.l新增功能);新增查询方法iso week day(),该方法可在查询结果集中按照iso-8601形式返回星期值(django3.1新增功能);为类django.db.models.combinable增加方法bitxor()用于位的异或操作,该类被django.db.models.f、django.db.models.expression继承。口增加了函数参数。为函数trunc增加了is dst参数,用来设置不存在和不明确的日期时间的处理方式;增加了使用connection.queries时的输出结果,当使用

postgresql数据库时,可以根据调用情况显示类似“copy xx to xxx”的sql脚本信息;为类django.db.models.query.queryset的datetimes(o方法增加了参数is dst,用于处理传递不存在或模糊的时间信息(django3.1新增功能)。

口增加了字段。增加了字段类型positivebigintegerfield,它的行为与字段类型

positivelntegerfield类似,其取值范围为0~9223372036854775807(django3.1新增功能)。增加了字段类型smallautofield,它的行为与字段类型autofield类似,其取值范围为1~32767。

口调整了字段。调整了模型字段filepathfield,使该字段的参数path可接受方法的返回值;将具有对称性的中间表用于模型字段manytomanyfield的自引用;增加模型checkconstraint、uniqueconstraint和index的参数使用控制,允许参数name使用以%(app_label)s'和%(class)s'占位符形式体现的字符串;为模型字段基类field

6 django3.0应用开发详解

增加属性descriptor class,用来形成描述信息;模型统计函数avg与sum允许对带有distinct行为的数据集合进行统计;调整字段类型bigautofield的继承父类为

bigintegerfield,调整字段类型smallautofield的继承父类为smallintegerfield;为字段类型filefield增加属性upload to,该属性可用于保存文件的路径信息,并可用于pathlib.path类的实例传递。调整模型字段filefield(作为继承类,imagefield也受影响)的初始参数storage,使该参数接收可调用方法,便于动态调整storage(django3.1新增功能)。

在字段方面,django3.1版本中又新增了如下功能。

口增加了模型的checkconstraint参数check使用控制,允许使用布尔表达式形式作为传人参数。

口增加了模型的uniqueconstraint参数deferrable使用控制,允许创建延迟性唯一性约束。

口为模型字段onetoonefield以及外键字段foreignkey的on delete参数增加了restrict选项值,用户可在删除该类字段数据时,根据需要选择model..cascade、model..protect与model..restrict。

14.请求响应

对于页面的请求响应处理,django3.0做了如下调整:

口调整了请求相应的传递信息。为httpresponse的传递内容信息增加了memoryview格式,用于返回。调整httprequest..headers的传递信息,允许以下划线和连字符两种形式查找相关关键字,这两种查询内容一致,例如查询user agent与user-agent,最后查询的都是user-agent.

口调整了请求相应的调用方法。调整了类django.http.httpresponse中的方法set cookie()与set_signed_cookie(),设置参数samesite默认值为none,用来表示cookie可被用于跨站请求,可根据需要禁止(django3.1新增功能)。为类django..htp.http

response增加方法accepts(),用来根据accept标头信息接收相关类型的内容(django

3.1新增功能)。

15.安全管理

在安全管理方面,django3.0做了如下调整:

口调整配置节点x frame options的默认值为“deny”。

口调整配置节点secure content type nosniff的默认值为“true”,当该值为“true”时,安全中间件securitymiddleware将为web响应设置x-content--type

options:nosniff标头信息。

口调整配置节点secure referrer policy的默认值为“same-origin”,当该值为“same-origin”时,安全中间件securitymiddleware将设置referrer policy标头信息

···试读结束···

  • 声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,以上内容仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站内容来自网络收集整理或网友投稿,所提供的下载链接也是站外链接,云顶国际亚洲唯一官网的版权争议与本站无关。您必须在下载后的24个小时之内,从您的设备中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版!我们非常重视云顶国际亚洲唯一官网的版权问题,如有侵权请邮件与我们联系处理。敬请谅解!邮箱:121671486@qq.com,微信:diqiuren010101
你是否在搜索这些内容?                                 

云顶国际集团-云顶国际亚洲唯一官网 © all rights reserved.   
站点地图| 免责说明| | 本站发布的内容仅为个人学习试用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负。如有侵权请及时联系云顶国际集团处理,邮箱:vlimit@qq.com

网站地图