zoukankan      html  css  js  c++  java
  • Django 3.0的新功能

    谷歌翻译的,我修正并且添加了一些内容.凑合看吧.

    MariaDB的支持

    Django现在正式支持MariaDB 10.1和更高版本。有关更多详细信息,请参见MariaDB注释

    ASGI支持

    Django 3.0通过提供对作为ASGI应用程序运行的支持,开始了使Django具有完全异步功能的旅程

    注:ASGI是WSGI的扩展,向下兼容WSGI,克服了WSGI的弱点,支持异步并发.有异步并发需求可以重新在生产环境下进行部署.

    这是对我们现有的WSGI支持的补充。Django打算在可预见的将来为这两者提供支持。但是,异步功能仅对在ASGI下运行的应用程序可用。

    除非您想开始尝试异步代码,否则无需切换应用程序,但是如果您想了解更多信息,我们有 关于使用ASGI进行部署的文档

    请注意,作为此更改的副作用,Django现在知道异步事件循环,并将阻止您从异步上下文中调用标记为“async unsafe”的代码(例如ORM操作)。如果您之前使用的是异步代码中的Django,则操作不正确可能会触发它。如果看到SynchronousOnlyOperation错误,仔细检查代码并将所有数据库操作移至同步子线程中。

    PostgreSQL的排斥约束

    新增了 ExclusionConstraint类, 允许在PostgreSQL上添加排除约束。使用Meta.constraints选项将约束添加到model 

    Filter 表达式

    新增了BooleanField ,可以直接在QuerySet过滤器中使用输出的表达式,而不必首先注释,然后针对注释进行过滤。

    在 model field choices中使用枚举

    自定义枚举类型TextChoicesIntegerChoicesChoices 现在作为一个的方式来定义Field.choices为文本和整数字段提供了类型TextChoices 和IntegerChoices类型。在 Choices类允许定义为其他具体的数据类型兼容的枚举。这些自定义枚举类型支持人类可读的标签,可以通过枚举或其成员上的属性来翻译和访问这些标签。有关更多详细信息和示例,请参见枚举类型

    次要功能

    django.contrib.admin

    • 增加了对admin_order_field的 ModelAdmin.list_display属性的支持
    • 新增的ModelAdmin.get_inlines()方法允许根据请求或模型实例指定内联。
    • Select2库从4.0.3版本升级到4.0.7。  # Select2 是一个非常好用的下拉框插件,支持很多功能。
    • jQuery从版本3.3.1升级到版本3.4.1。

    django.contrib.auth

    django.contrib.gis

    django.contrib.postgres

    django.contrib.sessions

    django.contrib.syndication

    缓存

    文件存储

    表格

    国际

    记录

    • 的新reporter_class参数 AdminEmailHandler允许提供一个 django.views.debug.ExceptionReporter子类,以自定义ADMINSDEBUGis 发送到站点的回溯文本False

    管理命令

    • 选项允许在搜索要编译的文件时忽略特定目录compilemessages --ignore.po
    • showmigrations --list现在显示的--verbosity是大于等于2的日期时间 
    • 在PostgreSQL上,dbshell现在支持客户端TLS证书。
    • inspectdb现在,OneToOneField 当外键具有唯一或主键约束时,它会进行自省
    • --skip-checks选项将在运行命令之前跳过正在运行的系统检查。
    •  选项现在存放在XZ档案(支持模板)和LZMA档案()。startapp --templatestartproject --template.tar.xz.txz.tar.lzma.tlz

    型号

    • 新增哈希数据库功能MD5, SHA1, SHA224, SHA256, SHA384,和 SHA512

    • 添加了Sign数据库功能。

    • 数据库功能的新is_dst 参数 Trunc确定了不存在和不明确的日期时间的处理方式。

    • connection.queries现在显示PostgreSQL上的语句。COPY … TO

    • FilePathField现在接受的可调用对象path

    • 允许使用对称的中间表作为自引用 ManyToManyField

    • name属性CheckConstraint, UniqueConstraint和 Index现在支持应用标签和类插值使用'%(app_label)s''%(class)s'占位符。

    • Field.descriptor_class属性允许模型字段通过覆盖其描述符来自定义get和set行为 

    • AvgSum现在支持distinct论点。

    • 添加了SmallAutoField,它的行为类似于“ AutoField例外”,只是它只允许某个值(取决于数据库)下的值。1到的32767在Django支持的所有数据库中都是安全的。

    • AutoField, BigAutoField以及 SmallAutoField现在从继承 IntegerFieldBigIntegerFieldSmallIntegerField分别。系统检查和验证器现在也已正确继承。

    • FileField.upload_to现在支持pathlib.Path

    • CheckConstraint 现在在MySQL 8.0.16+上受支持。

    • 这种新的allows_group_by_selected_pks_on_model()方法 django.db.backends.base.BaseDatabaseFeatures允许对子句进行优化, 使其仅需要选定模型的主键。默认情况下,仅PostgreSQL上的托管模型支持它。GROUP BY

      为非托管模型启用仅主键优化,您必须对PostgreSQL数据库引擎进行子类化,并根据需要覆盖features类方法。有关示例,请参见子类化内置数据库后端GROUP BYallows_group_by_selected_pks_on_model()

    请求和响应

    安全

    测试

    • 新的测试Client参数 raise_request_exception允许控制是否应在测试中引发在请求期间引发的异常。该值默认True为向后兼容。如果是,False并且发生异常,则测试客户端将返回500响应,其中包含属性exc_info,一个元组提供发生的异常的信息。
    • 可以使用新选项通过测试名称模式选择要运行的测试和测试用例test -k
    • assertHTMLEqual()现在,由所使用的HTML比较 将将相同字符引用的文本,字符引用和实体引用视为等效。
    • Django测试运行器现在支持在支持的浏览器上进行硒测试的无头模式。添加--headless选项以启用此模式。
    • Django测试运行器现在支持--start-at--start-after选项,以从特定的顶级模块开始运行测试。
    • Django测试运行器现在支持--pdb在每个错误或失败时生成调试器选项。
  • 相关阅读:
    拿webshell方法汇总
    Linux跑脚本用sh和./有什么区别?
    安全测试工具
    浏览器被劫持网上优秀的修复方法
    Linux 逻辑卷扩容
    sed替换文本
    mysql 用户创建,授权
    编程之约定
    java 对象成员变量初始化顺序
    java 静态成员初始化顺序
  • 原文地址:https://www.cnblogs.com/worldinmyeyes/p/12018203.html
Copyright © 2011-2022 走看看