专业的编程技术博客社区

网站首页 > 博客文章 正文

(完整)Vue3+Django4全新技术实战全栈项目

baijin 2025-05-03 12:01:51 博客文章 4 ℃ 0 评论

Vue3+Django4全新技术实战全栈项目

download:https://www.666xit.com/4154/


Django 4.0 发行说明

这些发行说明涵盖了新功用,以及从 Django 3.2 或更早版别晋级时需求留意的一些向后不兼容的更改。我们已经 开端了一些功用的弃用进程。

假如您要更新现有项目,请参阅怎么将 Django 晋级到更新版别攻略。

Python 兼容性

Django 4.0 支撑 Python 3.8、3.9 和 3.10。我们强烈推荐而且仅官方支撑每个系列的最新版别。

Django 3.2.x 系列是最后一个支撑 Python 3.6 和 3.7 的。

Django 4.0 的新特性

zoneinfo默许时区完成

Python 规范库zoneinfo现在是 Django 中的默许时区完成。

这是从 usingpytz到 using 搬迁的下一步zoneinfo。Django 3.2 答应运用非pytz时区。Django 4.0 是zoneinfo默许完成。支撑pytz现在已弃用,将在 Django 5.0 中删去。

zoneinfo是 Python 3.9 中 Python 规范库的一部分。backports.zoneinfo假如您运用的是 Python 3.8,该 软件包会自动与 Django 一同装置。

转向zoneinfo应该在很大程度上是通明的。当前时区的选择、日期时刻实例到表单和模板中当前时区的转换以及对 UTC 中感知日期时刻的操作不受影响。

可是,假如您运用非 UTC 时区,并运用pytz normalize()和localize()API,可能与TIME_ZONE设置一同运用,您将需求审阅您的代码,由于pytz 和zoneinfo不完全等效。

为了给这样的审计时刻,过渡USE_DEPRECATED_PYTZ 设置答应pytz在 4.x 发布周期中持续运用。此设置将在 Django 5.0 中删去。

此外, 作者创立的pytz_deprecation_shim包zoneinfo可用于帮忙从pytz. 这个包供给了 shims 来协助你安全地移除pytz,而且有一个详细的 搬迁攻略展示了怎么搬迁到新的zoneinfoAPIs。

假如您需求逐渐更新途径,主张运用pytz_deprecation_shim和USE_DEPRECATED_PYTZ过渡设置。

功用仅有束缚

的新*expressions 方位参数 UniqueConstraint()答应在表达式和数据库函数上创立功用仅有束缚。例如:

from django.db import models from django.db.models import UniqueConstraint from django.db.models.functions import LowerclassMyModel(models.Model): first_name = models.CharField(max_length=255) last_name = models.CharField(max_length=255) class Meta: constraints = [ UniqueConstraint( Lower('first_name'), Lower('last_name').desc(), name='first_last_name_unique', ), ]

运用该Meta.constraints选项将功用仅有束缚添加到模型中 。

scrypt暗码哈希

新的scrypt 暗码散列器比 PBKDF2 更安全,推荐运用。可是,它不是默许设置,由于它需求 OpenSSL 1.1+ 和更多内存。


Redis 缓存后端

新的
django.core.cache.backends.redis.RedisCache缓存后端为运用 Redis 进行缓存供给了内置支撑。需求 redis-py 3.0.0 或更高版别。有关更多详细信息,请参阅Django 中运用 Redis 进行缓存的文档。


基于模板的表单烘托

Forms, Formsets , 而且ErrorList现在运用模板引擎呈现以增强自定义。看到新的render(), get_context()以及 template_name用于Form和 表单集烘托了Formset。


次要功用


django.contrib.admin

  • 该admin/base.html模板现在有一个header包含管理站点标题的新块。


  • ModelAdmin.get_formset_kwargs()办法答应自定义传递给表单集结构函数的关键字参数。

  • 导航侧边栏现在有一个快速过滤工具栏。

  • model包含每个模型的模型类的新上下文变量被添加到AdminSite.each_context()办法中。


  • ModelAdmin.search_help_text特点答应为查找框指定描述性文本。


  • InlineModelAdmin.verbose_name_plural特点现在回退到
    InlineModelAdmin.verbose_name+ 's'。

  • jQuery 从 3.5.1 晋级到 3.6.0。


django.contrib.admindocsP

  • admindocs 现在答应在ROOT_URLCONF不是字符串的情况下进行艰深的设置。

  • 现在的模型部分admindocs显现缓存的特点。


django.contrib.authP

  • PBKDF2 暗码哈希的默许迭代次数从 260,000 增加到 320,000。

  • 新的 LoginView.next_page 特点和 get_default_redirect_url()办法答应在登录后自定义重定向。


django.contrib.gisP

  • 添加了对 SpatiaLite 5 的支撑。

  • GDALRaster 现在答应在任何 GDAL 虚拟文件体系中创立栅格。

  • 新GISModelAdmin类答应自定义用于GeometryField. 这是鼓舞而不是弃用的GeoModelAdminand OSMGeoAdmin。


django.contrib.postgresP

  • PostgreSQL 后端现在支撑通过服务名称进行衔接。有关更多详细信息,请参阅 PostgreSQL 衔接设置。

  • 新AddConstraintNotValid 操作答应在 PostgreSQL 上创立检查束缚,而无需验证所有现有行是否满意新束缚。

  • 新ValidateConstraint 操作答应验证AddConstraintNotValid在 PostgreSQL 上创立的检查束缚 。

  • 新 ArraySubquery() 表达式答应运用子查询在 PostgreSQL 上结构值列表。

  • 新的trigram_word_similar查找和 TrigramWordDistance()and TrigramWordSimilarity()表达式答应运用三元词类似度。


django.contrib.staticfilesP


  • ManifestStaticFilesStorage 现在用它们的散列对应物替换 JavaScript 源映射引证的途径。

  • 的新manifest_storage参数 ManifestFilesMixinand
    ManifestStaticFilesStorage 答应自定义清单文件存储。


缓存

  • 新的异步
    APIdjango.core.cache.backends.base.BaseCache开端了使缓存后端异步兼容的进程。新的异步办法都有a前缀名称,例如aadd(), aget(), aset(), aget_or_set(), 或adelete_many().

    展望未来,a前缀通常用于办法的异步变体。


CSRF

  • CSRF 保护现在会参阅Origin标头(假如存在)。为此,需求对 设置进行一些更改CSRF_TRUSTED_ORIGINS。


表格

  • ModelChoiceField现在在为 过错音讯params引发的参数中 包含供给的值。这答应自定义过错音讯运用 占位符。
    ValidationErrorinvalid_choice%(value)s

  • BaseFormSet现在运用额外的类呈现非表单过错,nonform以协助将它们与特定于表单的过错区别开来。

  • BaseFormSet现在答应can_delete通过设置 deletion_widget特点或覆盖get_deletion_widget() 办法来自定义删去表单时运用的小部件 。


国际化

  • 添加了对马来语的支撑和翻译。


通用视图

  • DeleteView现在运用 FormMixin,答应您供给一个 Form子类,例如一个复选框,以确认删去。此外,这答应DeleteView运用
    django.contrib.messages.views.SuccessMessageMixin.

    根据FormMixin,POST 请求的目标删去是在 中处理的form_valid()。delete()应根据需求将处理程序中的自定义删去逻辑移至form_valid()或同享辅佐办法。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表