我是靠谱客的博主 爱笑吐司,最近开发中收集的这篇文章主要介绍Python开发-Django 开源项目Django 开源项目,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Django 开源项目

了解 Django 项目本身的开发进程以及你如何为 Django 做贡献:

一、社区:

如何参与其中

为 Django 做贡献

Django 是一个以志愿者为生的社区。随着它的不断发展,我们总是需要更多的人来帮助他人。您可以通过多种方式做出贡献,无论是在框架本身还是在更广泛的生态系统中。

在 Django 框架上工作

Django 本身的工作分为三个主要领域:

写代码????

修复错误或添加新功能。您可以发出拉取请求并在下一版本的 Django 中查看您的代码!

从写代码文档开始。

所以你想写一些代码来改进 Django?有几种方法可以帮助 Django 的开发:

报告我们的票务跟踪器中的错误。
加入django-developers邮件列表并分享您对如何改进 Django 的想法。我们总是乐于接受建议。您还可以在Django 论坛和#django-dev IRC 频道上进行互动。
为新的和/或固定的行为提交补丁。如果您正在寻找一种开始为 Django 做贡献的方法,请阅读写 你的第一个 Django 打补丁教程,并查看轻松挑选的 门票。该补丁评审列表,也将是有益的。

改进文档或编写单元测试。
对其他用户创建的故障单进行分类并查看补丁。
阅读对新贡献者的建议,帮助您在开发过程中定位。

浏览以下部分以了解如何为您的代码补丁提供包含在 Django 核心中的最佳机会:

  • 编码风格
  • 单元测试集
  • 提交打样
  • 使用 Git 和 GitHub 工作
  • JavaScript

编写文档✍️

Django 的文档是其主要优势之一。它内容丰富且全面。您可以帮助改进文档并随着框架的发展保持其相关性。

官方极其重视文档的一致性和可读性。毕竟,Django 是在需要快速发布新闻的环境下开发的!所以,我们像对待我们的代码一样对待我们的文档:我们期望尽可能频繁地更新它。

一般来说,文档会在以下两种情况时更新:

  • 一般改进:通过更清晰的书写和更多示例,更正、修复文档错误,更好的解释功能。
  • 新特性:自上一个版本发布后,添加到框架中的功能文档。

获得原始文档

Django 文档可在 https://docs.djangoproject.com/ 以网页的形式阅读,但我们以一种更灵活的方式编辑它——一系列的文本文件。这些文件位于 Django 的每个发布分支的顶级目录 docs/ 下。

如果你想开始为我们的文档做贡献,请从源代码库中获取 Django 的开发版本(见 安装开发版本)。开发版有最新、最棒的文档,就像它有最新、最棒的代码一样。在提交者的决定下,我们也会将文档的修正和改进向后移植到最后的发行分支。这是因为让最后一个发行的文档是最新的和正确的是非常有利的(见 版本之间的差异)。

开始使用 Sphinx

Django 的文档使用 Sphinx 文档系统——基于 docutils。基本思想是将轻量格式话的纯文本转化为 HTML,PDF 或其它任意输出格式。

要在本地构建文档,请安装 Sphinx:

$ python -m pip install Sphinx

然后从 docs 目录下,编译 HTML:

$ make html

发布进程

Django 的发行流程
正式发行

Django 的发行编号如下方式工作:

版本编号为 A.B 或 A.B.C 形式。
A.B 是 功能发行 的版本号。每个版本都将基本向后兼容前一个版本。这个规则的例外情况将在发行说明中列出。
C 是 补丁发行 的版本号,对于错误修复和安全发行来说,它是递增的。这些版本将 100% 向后兼容前一个补丁版本。唯一的例外是当有一个安全或数据丢失的问题无法在不破坏向后兼容的情况下被修复。如果发生这种情况,发行说明将提供详细的升级说明。
在一个新的功能发行之前,我们会发布 alpha、beta 和候选发行。这些发行的形式是 A.B alpha/beta/rc N,意思是 A.B 版本的第 N 个 alpha/beta/候选发行。
在 git 中,每个 Django 发行都会有一个标签,表示它的版本号,用 Django 的发行密钥签名。此外,每个发行系列都有自己的分支,称为 stable/A.B.x,bugfix/security 版本将从这些分支发布。

关于 Django 项目如何出于安全目的发布新版本的更多信息,请参见 我们的安全政策。

功能发行

功能发行(A.B,A.B+1,等等)大约每 8 个月进行一次 —— 详情请见 release process 。这些发行将包含新的功能,对现有功能的改进等等。
补丁发行
补丁版本(A.B.C,A.B.C+1 等等)将根据需要发布,以修复错误和/或安全问题。

这些版本将与相关的功能版本 100% 兼容,除非由于安全原因或为了防止数据丢失而无法做到。因此,“我应该升级到最新的补丁版本吗?” 的答案将永远是 “是的”。

长期支持发行

某些功能版本将被指定为长期支持(LTS)版本。这些版本将在保证的时间内,通常是三年内得到安全和数据丢失的修复。

团队组织

Django 项目的组织
Django 项目由一群追求三个目标的志愿者管理:

推动 Django Web 框架的开发,
培育 Django 相关软件的生态系统,
根据Django 行为准则中描述的价值观领导 Django 社区 。
Django 项目不是法律实体。在Django的软件基金会,一个非营利性组织,处理与Django的项目财务和法律问题。除此之外,Django 软件基金会让 Django 项目管理 Django 框架、其生态系统和社区的开发。

Django 源代码仓库

Django 源代码库

在将 Django 应用程序部署到实际生产环境中时,您几乎总是希望使用Django 的官方打包版本。

但是,如果您想从即将发布的版本中尝试开发中的代码或为 Django 的开发做出贡献,则需要获取 Django 源代码存储库的克隆。

安全政策

Django 的安全策略

Django 的开发团队致力于负责任地报告和披露与安全相关的问题。因此,我们采用并遵循了一系列符合这一理想的政策,旨在让我们能够及时向 Django 的官方发行版以及第三方发行版提供安全更新。

邮件列表

邮件列表

Django 在 Google Groups 上有几个官方邮件列表,对任何人都开放。

django-users

如果你想问任何关于 Django 的安装、使用或调试的问题,这里是正确的地方。

如果你是第一次向这个名单发送邮件,你的邮件必须先被接受,所以不要担心 你的邮件没有立即出现。

django-users mailing archive
django-users subscription email address
django-users posting email

二、设计哲学:

概览

设计理念

本文档解释了 Django 开发人员在开发 Django 时使用的一些基本哲学, 它的目标是解释过去并指导未来

松耦合

Django 栈的基本目标是 低耦合高内聚。框架里的不同层(Layers)不应该知道对方的代码,除非它们确实需要。

例如,模板系统不需要知道用户的 Web 请求,数据库层不需要了解如果显示数据,而视图并不关心程序员所使用的模板系统。

尽管为了方便 Django 带有一个完整的堆栈,但堆栈的各个部分尽可能独立于另一个堆栈。

更少的代码

Django 应用的代码应该尽可能地精简,Django 应该充分利用 Python 的动态能力,比如自省机制(introspection)。

快速开发

在 21 世纪,Web 框架的核心一点是让 Web 开发中枯燥的事情处理得更加快速,Django 可以做到快速的 Web 开发。

不要重复地造轮子 (DRY)

每个独特的概念或数据片应该存在且只存在于一个地方。避免冗余,做好标准化。

合理的框架应该从尽可能少的信息中推断出尽可能多的需求。

明确优于隐式

这是在 PEP 20 列出的核心 Python 原则,这意味着 Django 不应该使用太多的“魔术”。除非有一个很好的理由,否则不应该出现魔术。只有当魔术创造了巨大的便利,并且使用其他方式难以实现时,它才值得使用,而且它的实现方式并不会让试图学习如何使用该功能的开发人员感到困惑。

一致性

框架应在所有层级上保持一致。一致性适用于从低级(Python 的编码风格)到高级(使用 Django 的“经验”)的所有内容。

三、文档:

关于本文档

书写格式

当使用代词指代一个假设的人时,如 “a user with a session cookie”,应使用性别中性的代词(they/their/them)。而不是:

he 或 she……使用 they。
him 或 her... 使用 them。
his 或 her……使用 their。
his 或 hers... 使用 theirs。
himself 或 herself... 使用 themselves。

四、第三方发行:

概览

Django 的第三方发布包

许多第三方分销商现在正在提供与他们的软件包管理系统集成的 Django 版本。这些可以使 Django 的用户更容易安装和升级,因为集成包括了自动安装 Django 需要的依赖关系(如数据库适配器)的功能。

通常,这些包基于 Django 的最新稳定版本,因此如果您想使用 Django 的开发版本,则需要从我们的 Git 库中安装 安装开发版本。

如果您正在使用 Linux 或 Unix 的安装版,比如 OpenSolaris,请与您的经销商联系,看看他们是否已经打包了 Django。如果您使用的是Linux发行版,并且不知道如何弄清一个包是否可用,那么现在是学习的好时机。Django Wiki 包含一个“第三方发行版”列表,以帮助您解决问题。

五、Django 时间线:

API 稳定性

什么是“稳定”?
在此处,稳定意味着:

  • 所有发布的 API (在文档中的一切 API )在不提供向后兼容的别名的情况下,都不会被移除或者重命名。

  • 如果文档中的 API 添加了新特性(这是极有可能的),新特性不会导致现有方法罢工或者修改方法的含义。也就是说,“稳定性”并不意味着“不变性”。

  • 假如因为某些原因,一个“稳定的” API 必须被移除或者被代替,它将会被弃用但仍然会被保留直到至少有两个新特性发布。当调用即将被弃用的方法时,会产生警告。

  • 有关 Django 是如何编写版本号以及一些功能是如何被弃用的详细信息,请看: 正式发行。

  • 如果一个 bug 或安全漏洞完全不可避免,我们才会直接打破这些 API 的向后兼容性而不走弃用过程。

发行说明和升级说明

大家开发时可以选择合适的发行版本升级。
3.2 发行
Django 3.2.10 release notes
Django 3.2.9 版本发行说明
Django 3.2.8 版本发行说明
Django 3.2.7 版本发行说明
Django 3.2.6 版本发行说明
Django 3.2.5 版本发行说明
Django 3.2.4 版本发行说明
Django 3.2.3 版本发行说明
Django 3.2.2 版本发行说明
Django 3.2.1 版本发行说明
Django 3.2 版本发行说明
3.1 发行
Django 3.1.14 release notes
Django 3.1.13 版本发行说明
Django 3.1.12 版本发行说明
Django 3.1.11 版本发行说明
Django 3.1.10 版本发行说明
Django 3.1.9 版本发行说明
Django 3.1.8 版本发行说明
Django 3.1.7 版本发行说明
Django 3.1.6 版本发行说明
Django 3.1.5 版本发行说明
Django 3.1.4 版本发行说明
Django 3.1.3 版本发行说明
Django 3.1.2 版本发行说明
Django 3.1.1 版本发行说明
Django 3.1 版本发行说明
3.0 发行
Django 3.0.14 版本发行说明
Django 3.0.13 版本发行说明
Django 3.0.12 版本发行说明
Django 3.0.11 版本发行说明
Django 3.0.10 版本发行说明
Django 3.0.9 版本发行说明
Django 3.0.8 版本发行说明
Django 3.0.7 版本发行说明
Django 3.0.6 版本发行说明
Django 3.0.5 版本发行说明
Django 3.0.4 版本发行说明
Django 3.0.3 版本发行说明
Django 3.0.2 版本发行说明
Django 3.0.1 版本发行说明
Django 3.0 版本发行说明

过时时间表

开发会看文档很关键,所以大家要看到版本,不要看到版本的文档,因为官方是会随时更新文档的。
4.1

有关这些更改的更多详细信息,请参阅Django 3.2 发行说明。

将删除对分配不支持使用copy.deepcopy()类属性创建深层副本的对象的支持 TestCase.setUpTestData()。
BaseCommand.requires_system_checks 不支持布尔值。
的whitelist参数和domain_whitelist属性 django.core.validators.EmailValidator将被删除。
该default_app_config模块变量将被删除。
TransactionTestCase.assertQuerysetEqual()repr()与字符串值相比,将不再自动调用查询集。
django.core.cache.backends.memcached.MemcachedCache 将被移除。
django.contrib.messages.storage.cookie.CookieStorage将删除对 Django 3.2 之前使用的消息格式的支持 。
4.0

有关这些更改的更多详细信息,请参阅Django 3.0 发行说明。

django.utils.http.urlquote(), urlquote_plus(), urlunquote(), 和 urlunquote_plus()将被删除。
django.utils.encoding.force_text()并且smart_text()将被删除。
django.utils.translation.ugettext()、ugettext_lazy()、 ugettext_noop()、ungettext()和ungettext_lazy()将被删除。
django.views.i18n.set_language()将不再在request.session(key django.utils.translation.LANGUAGE_SESSION_KEY) 中设置用户语言 。
alias=None将需要在django.db.models.Expression.get_group_by_cols()子类的签名中 。
django.utils.text.unescape_entities() 将被移除。
django.utils.http.is_safe_url() 将被移除。

最后

以上就是爱笑吐司为你收集整理的Python开发-Django 开源项目Django 开源项目的全部内容,希望文章能够帮你解决Python开发-Django 开源项目Django 开源项目所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部