django应用程序,使用uwsgi假脱机程序通过管理接口管理异步任务。

django-uwsgi-taskmanager的Python项目详细描述


django uwsgi任务管理器

代码样式:黑色

django应用程序,使用uwsgi后台处理程序通过管理界面管理异步任务。

功能

  • 通过"管理"启动和停止任务
  • 安排任务
  • 将任务计划为cron项
  • 检查或下载生成的报告/日志
  • 只需编写一个标准的django命令类(您的应用程序不需要与django uwsgi taskmanager交互)

安装

  1. pip安装应用程序:

    • 通过PYPI:

      pip安装django uwsgi taskmanager

    • 或通过Github:

      pip安装git+https://github.com/openpolis/django uwsgi taskmanager.git

  2. 将"taskmanager"添加到您的已安装的应用程序中设置如下:

    INSTALLED_APPS=["django.contrib.admin",# ..."taskmanager",]
  3. 运行python manage.py migrate以创建taskmanager表。

  4. 运行python manage.py collectcommands以创建taskmanager命令。

  5. 在项目中包含taskmanager urlconfurls.py如下(可选)

    fromdjango.contribimportadminfromdjango.urlsimportinclude,pathurlpatterns=[path("admin/",admin.site.urls),path("taskmanager/",include("taskmanager.urls")),]
  6. 在设置文件中设置参数,如下所示(可选)

    TASK_MANAGER_N_LINES_IN_REPORT_INLINE = 10
    TASK_MANAGER_N_REPORTS_INLINE = 3
    TASK_MANAGER_SHOW_LOGVIEWER_LINK = True
    TASK_MANAGER_USE_FILTER_COLLAPSE = True
    TASK_MANAGER_SAVE_LOGFILE = False
    

用法

您只需要在django项目中安装django uwsgi taskmanager,然后按照说明运行collectcommands。 django uwsgi taskmanager将收集所有命令,并使它们可用于管理中的异步调度。

如果需要新的异步任务,只需编写一个标准的自定义django命令,并同步应用程序。然后转到"管理"页并计划它。

您可以禁用管理员的某些命令,并让用户(具有有限权限)仅计划可用的命令。

uwsgi ini文件(附庸)必须包含后台处理程序pythonpath选项。

< Buff行情>

注意:在启动uwsgi之前,请记住使用正确的权限手动创建后台处理程序目录

演示

这是一个基本的django演示项目,有一个uwsgi.ini文件和四个目录(mediaspoolerstaticvenv)。

demo/
├── demo/
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── manage.py
├── media/
├── spooler/
├── static/
├── uwsgi.ini
└── venv/

这是用django执行项目所需的uwsgi.ini文件的内容:

[uwsgi]chdir=%denv=DJANGO_SETTINGS_MODULE=demo.settingshttp-socket=:8000master=truemodule=demo.wsgiplugin=python3pythonpath=%dspooler=%dspoolerstatic-map=/static/=%dstaticvirtualenv=%dvenv

尝试演示项目

输入demo目录,然后创建并激活demo虚拟环境:

$ cd demo
$ mkdir -p venv
$ python3 -m venv ./venv
$ source ./venv/bin/activate

安装django uwsgi taskmanager:

(venv) $ pip install django-uwsgi-taskmanager

安装uwsgi(如果使用操作系统的uwsgi,可以跳过此步骤):

(venv) $ pip install uwsgi

收集所有静态文件:

(venv) $ python manage.py collectstatic

创建所有表:

INSTALLED_APPS=["django.contrib.admin",# ..."taskmanager",]
0

收集所有命令:

INSTALLED_APPS=["django.contrib.admin",# ..."taskmanager",]
1

创建超级用户以登录管理员:

INSTALLED_APPS=["django.contrib.admin",# ..."taskmanager",]
2

使用uwsgi启动项目:

INSTALLED_APPS=["django.contrib.admin",# ..."taskmanager",]
3

访问http://127.0.0.1:8000/admin/" rel="nofollow">http://127.0.0.1:8000/admin/

版权所有

django uwsgi taskmanager是使用uwsgi假脱机程序通过管理界面管理异步任务的应用程序。

版权所有(c)2019 Gabriele Giaccari、Gabriele Lucci、Guglielmo Celata、Paolo Melchiorre

此程序是免费软件:您可以重新分发和/或修改 根据GNU Affero通用公共许可条款 由自由软件基金会出版,或者 许可证,或(由您选择)任何更高版本。

这个程序的发布是希望它能被使用UL 但没有任何保证;甚至没有 适销性为特定目的的适销性或适合性见 GNU Affero通用公共许可证了解更多详细信息。

你应该收到一份gnu-affero通用公共许可证的副本 还有这个节目。如果没有,请参见https://www.gnu.org/licenses/

更改日志

此项目的所有显著更改都将记录在此文件中。

格式基于保持变更日志 这个项目遵循语义版本控制。

未发布

1.0.2-2019-07-23

添加

  • readme.md文件中添加版权部分

更改

  • license.md文件中添加完整的gnu agpl v3

已修复

  • 修复changelog.md中损坏的1.0.1 url
  • 修复任务类别管理中的类型错误

删除

  • 从模型中删除未使用的代码

1.0.1-2019-07-13

更改

  • 将collect_commands重命名为collect commands
  • readme.md中添加missings setps

已修复

  • changelog.md中修复版本1.0.0的发布日期
  • 在migrations目录中添加缺少的
  • 在演示设置中添加缺少的静态根目录
  • 添加缺少的媒体目录和设置
  • fix convert to local datetime函数
  • 更新并完成setup.py

1.0.0-2019-07-12

添加

  • 首次发布

作者

  • 加布里埃尔·贾卡里(@gabbork
  • 加布里埃尔·卢奇(@gabrielucci
  • 古格里尔莫•塞拉塔(@guglielmo
  • 保罗·梅尔奇奥尔(paolo melchiorre)(paolo melchiorre)(paolo melchiorre)(paolo melchiorre)(paolo melchiorre)(paolo melchiorre)(paolo melchiorre)(pauloxnet,pauloxnet,pauloxnet,pauloxnet,pauloxnet

GNU Affero通用公共许可证

版本3,2007年11月19日

版权所有(c)2007自由软件基金会 https://fsf.org/

每个人都可以复制和分发这个 许可证文档,但不允许更改。

前导

GNU Affero通用公共许可证是 软件和其他类型的工作,专门设计来确保 在网络服务器软件方面与社区合作。

大多数软件和其他实际工作的许可证都是设计的 剥夺你分享和改变作品的自由。相比之下, 我们的公共许可证旨在保证您 共享和更改程序的所有版本--以确保它保持不变 为所有用户提供免费软件。

当我们谈到自由软件时,我们指的是自由,而不是 价格。我们的通用公共许可证旨在确保您 有权分发免费软件的副本(并收取 如果你愿意的话),你可以接收源代码 想要它,你可以改变软件或使用新的 免费程序,而且您知道您可以做这些事情。

使用通用公共许可证的开发人员保护你的权利 有两个步骤:(1)维护软件的版权,以及(2)提供 你这张许可证给你合法的复制,分发 和/或修改软件。

保护所有用户自由的第二个好处是 在程序的其他版本中所做的改进,如果 广泛使用,可供其他开发人员使用 合并。许多自由软件的开发人员感到振奋 对由此产生的合作感到鼓舞。但是,在 在网络服务器上使用的软件,此结果可能无法实现。 GNU通用公共许可证允许修改版本和 允许公众在服务器上访问它而不释放它 向公众提供源代码。

GNU Affero通用公共许可证专门用于 在这种情况下,确保修改后的源代码可用 对社区来说。它要求网络服务器的操作员 向 服务器的用户。因此,公共使用一个修改过的版本 一个可公开访问的服务器,允许公众访问源 修改版本的代码。

一个旧的许可证,称为Affero通用公共许可证 由Affero出版,旨在实现类似的目标。这是 不同的许可证,不是Affero GPL的版本,但是Affero有 发布了新版本的Affero GPL,允许重新授权 在本许可证下。

复制、分发和 修改之后。

条款和条件

<H4>0。定义。

"本许可证"指GNU Affero General Public的第3版 许可证< < /P>

"版权"也指适用于其他类型的类似版权的法律 例如半导体掩模。

"程序"是指根据本协议授权的任何版权作品。 许可证。每个被许可人的地址都是"你"。"和 "收件人"可以是个人或组织。

"修改"一件作品意味着复制或改编全部或部分作品 以需要版权许可的方式,而不是 准确的副本。由此产生的工作称为 早期工作或"基于"早期工作的工作。

"覆盖工作"是指未修改的程序或基于工作的 在程序中。

"宣传"一件作品意味着对它做任何事情 允许,会使你直接或间接承担责任 适用版权法下的侵权行为,但在 计算机或修改私人副本。传播包括复制, 分发(带或不带修改),提供给 在某些国家和地区,也有其他活动。

"传达"一件作品意味着任何能够 制作或接收副本的一方。仅与用户交互 通过计算机网络,没有副本的传输 传送。

交互式用户界面显示"适当的法律声明" 它包括一个方便和显著可见的 (1)显示适当版权声明的功能,以及(2) 告诉用户工作没有保修(除了 在提供保证的范围内),被许可方可以 在此许可下工作,以及如何查看此许可的副本。如果 界面显示用户命令或选项的列表,例如 菜单,列表中的突出项符合此标准。

<H4>1。源代码。

作品的"源代码"是指 对其进行修改。""目标代码"是指 作品

"标准接口"是指官方接口 由公认标准机构定义的标准,或 为特定编程语言指定的接口 在使用该语言的开发人员中广泛使用。

可执行工作的"系统库"包括任何 (a)包含在 包装一个主要组件,但它不是该主要组件的一部分 组件,和(b)仅用于使用 主要组件,或实现一个标准接口 实现以源代码的形式提供给公众。一 在这方面,"主要组成部分"是指主要的基本组成部分 特定操作系统的(内核、窗口系统等) 运行可执行工作的(如果有的话)或编译器 生成工作或用于运行它的目标代码解释器。

目标代码形式的作品的"对应源"表示 生成、安装和(对于可执行文件)所需的源代码 work)运行目标代码并修改工作,包括脚本 控制这些活动。但是,它不包括 系统库、通用工具或通常免费提供 在执行这些活动时未经修改而使用的程序 这不是工作的一部分。例如,对应的源 包括与源文件关联的接口定义文件 共享库的工作和源代码 工作特别设计需要的链接子程序, 例如通过这些 子程序和工作的其他部分。

相应的源不需要包含任何用户可以 从相应源的其他部分自动重新生成。

源代码形式的工作对应的源代码是 工作,

<H4>2。基本权限。

根据本许可证授予的所有权利的有效期为 程序的版权,且不可撤销,前提是 满足条件。此许可证明确声明 运行未修改程序的权限。运行 本许可证仅在以下情况下涵盖涵盖的工作: 内容,构成涵盖的工作。本许可证承认 版权法规定的合理使用权或其他同等权利。

你可以制作、运行和传播你没有传达的作品, 无条件的,只要你的执照有效。 你可将受保工程转给他人,唯一目的是 他们专门为您进行修改,或者为您提供 运行这些工程的设施,前提是您遵守 本许可证的条款,用于传送所有您不需要的材料 控制版权。因此制造或经营覆盖工程的 你必须在你的指导下,完全代表你这样做, 控制,禁止他们复制 他们与您关系之外的受版权保护的材料。

在任何其他情况下,仅在 条件如下。不允许再授权;第10节规定 没有必要。

<H4>3。保护用户的合法权利免受反规避法的侵害。

任何覆盖工程均不得视为有效技术的一部分 根据任何适用法律履行第条规定义务的措施 1996年12月20日通过的《知识产权组织版权条约》第11条,或 禁止或限制规避此类行为的类似法律 措施。

当你转让受保工作时,你放弃任何禁止 规避技术措施 规避是通过行使本许可下的权利 尊重所涵盖的工作,并且您不打算限制 对工程的操作或修改,作为对 作品的使用者、您或第三方禁止 规避技术措施。

<H4>4。传送逐字副本。

您可以在 接受它,在任何介质中,p你明显地 在每份副本上适当发布适当的版权声明; 保持完整所有声明此许可证和任何 根据第7节添加的非许可条款适用于本规范; 保持所有无担保通知的完整性;并 将此许可证的副本连同程序一起接收。

你方可对每一份转达的副本收取任何价格或不收取任何价格, 您还可以免费提供支持或保修保护。

<H4>5。传送修改过的源版本。

您可以根据程序或对 从程序中以源代码的形式在 第4节的条款,前提是你同时满足 条件:

  • a)工作必须带有明显的通知,说明您修改了 并给出相关日期。
  • b)工程必须带有明显的通知,说明 根据本许可证和 第7节。本要求修改了第4节中的要求 "保持所有通知完好无损"。
  • c)你必须根据本协议授权整个工作。 任何人持有一份副本的许可证。这个 因此,许可证将与任何适用的第7节一起适用 对整个工程及其所有部分的附加条款, 不管它们是如何包装的。这个许可证没有 允许以任何其他方式许可这项工作,但它没有 如果您单独收到此许可,请将其作废。
  • d)如果工作具有交互式用户界面,则每个界面必须显示 适当的法律通知;但是,如果程序具有交互功能 不显示适当法律声明的接口 工作不必让他们这样做。

与其他独立的 工程,其性质不是覆盖工程的延伸, 而不是与之结合形成一个更大的程序, 在存储或分发介质的卷内或卷上,称为 如果编译及其产生的版权不是 用于限制编辑用户的访问或合法权利 超出个别工程许可的范围。包含覆盖工程 总的来说不会导致本许可证适用于另一个 部分骨料。

<H4>6。传送非源格式。

你可以用目标代码的形式,根据 第4节和第5节,前提是您还传达了机器可读的 根据本许可条款的相应来源,在其中一个 方式:

  • a)将目标代码传达到物理产品中或体现在物理产品中 (包括一种物理分布介质),伴随着 固定在耐用物理介质上的对应源 通常用于软件交换。
  • b)将目标代码传达到物理产品中或体现在物理产品中 (包括一种物理分布介质),伴随着 书面报价,有效期至少三年,有效期为 只要你能为那个产品提供备件或客户支持 模型,给任何拥有目标代码的人(1)一个 中所有软件的对应源的副本 本许可证涵盖的产品 通常用于软件交换的介质,价格不 超过了你合理的体力消耗 传送源,或(2)访问复制相应的 免费从网络服务器获取信息。
  • c)将目标代码的单独副本与 提供相应的书面报价来源。这个 只有偶尔和非商业性的情况下才允许选择,并且 只有当你收到目标代码时,你方同意 第6b小节。
  • d)通过提供从指定的 放置(免费或收费),并提供 相同的对应源在同一个地方 进一步收费。您无需要求收件人复制 对应的源代码和目标代码。如果这个地方 复制对象代码是一个网络服务器,对应的源 可能在不同的服务器上(由您或第三方操作) 如果您维护 明确目标代码旁边的方向,说明在何处找到 相应的来源。无论哪个服务器托管 相应的来源,你仍然有义务确保 可根据需要提供,以满足这些要求。
  • e)使用点对点传输传送目标代码, 如果您通知其他对等方目标代码和 相应的工作来源正在提供给将军 根据第6d款,免费向公众公布。

目标代码的可分离部分,其源代码被排除在外 从相应的源作为系统库,不必 包括在传送目标代码工作中。

"用户产品"是指(1)一种"消费产品",即 通常用于个人的有形个人财产, 家庭或家庭用途,或(2)设计或出售的任何东西 并入住宅。在确定产品是否是 消费品,可疑案件应以 新闻报道。对于特定用户收到的特定产品, "通常使用"是指 产品,不管特定用户的状态或方式 特定用户实际使用、期望或期望的 使用,产品。产品是消费品,不管 产品是否具有实质性的商业、工业或 非消费者用途,除非此类用途代表 产品的使用方式。

用户产品的"安装信息"是指任何方法, 所需的程序、授权密钥或其他信息 在该用户中安装并执行所涵盖工作的修改版本 来自其相应源的修改版本的产品。这个 信息必须足以确保 修改后的目标代码在任何情况下都不会被阻止或干扰 只是因为已经进行了修改。

如果您将本节项下的目标代码工作传达给 专门用于用户产品中,并且传送发生为 交易的一部分,其中 用户产品被永久地或为 固定期限(不考虑交易的特征),即 必须随附根据本节传送的相应来源 根据安装信息。但这一要求不适用 如果您或任何第三方都没有保留安装的能力 修改了用户产品的目标代码(例如 已安装在ROM中)。

提供安装信息的要求不包括 继续提供支持服务、保证或 已由修改或安装的工作的更新 收件人,或已修改的用户产品,或 安装。修改时可能拒绝访问网络 本身对网络的运营产生重大不利影响 或者违反了 网络。

传送相应的源,并提供安装信息, 根据本节,必须采用公开的格式 记录在案(并在 源代码表单),并且对于 拆包、读取或复制。

<H4>7。附加条款。

"附加权限"是对本协议条款的补充。 通过对其一个或多个条件进行例外的许可。 适用于整个程序的附加权限 铍钛合金在一定程度上 它们在适用法律下是有效的。如果有其他权限 仅适用于程序的一部分,该部分可单独使用 在这些权限下,但整个程序仍由 此许可证不考虑其他权限。

当你传送一份受保护作品的副本时,你可以选择 从该副本或的任何部分删除任何其他权限 它。(可能会写入其他权限以要求它们自己的权限 在某些情况下,当您修改工作时删除。)您可以放置 对材料的附加权限,由您添加到涵盖的工作中, 您拥有或可以给予适当的版权许可。

尽管本许可证有任何其他规定,对于您 如果版权所有者授权,您可以 (该材料的)用以下条款补充本许可证的条款:

  • a)否认保证或限制责任与 本许可证第15条和第16条的条款;或
  • b)要求保存规定的合理法律通知或 该材料或适当法律中的作者归属 由包含它的作品显示的通知;或
  • c)禁止歪曲该材料的来源, 或要求在 与原始版本不同的合理方式;或
  • d)限制将许可方的名称用于宣传目的 或材料作者;或
  • (e)拒绝根据商标法授予使用某些 商品名、商标或服务商标;或
  • f)要求许可方和作者赔偿 任何传送材料(或修改版本)的人提供的材料 在合同规定的对接受方承担责任的情况下, 对于这些合同假设直接导致的任何责任 强加给那些许可人和作者。

所有其他不允许的附加条款被视为"进一步 第10条所指的限制。如果程序像你一样 已收到,或其任何部分,包含声明 受本许可证以及 限制,您可以删除该术语。如果许可证文档包含 进一步的限制,但允许根据本协议重新授权或转让 许可证,您可以添加到受条款约束的涵盖工作材料中 如果进一步的限制 无法通过这种重新授权或传送。

如果您根据本节的规定在所涵盖的工作中添加条款,则 必须在相关源文件中放置 适用于这些文件的附加条款,或表明 在哪里可以找到适用的条款。

附加条款,允许的或不允许的,可以在 单独的书面许可的形式,或作为例外说明;或 以上要求均适用。

<H4>8。终止。

除非另有明确规定,否则不得传播或修改涵盖的作品 根据本许可证提供。以其他方式传播或 修改无效,将自动终止您在 本许可证(包括根据 第11节的段落)。

但是,如果您停止所有违反本许可证的行为,则您的许可证 从一个特定的版权持有人(a)暂时恢复, 除非和直到版权所有者明确和最终 终止您的许可,并且(b)如果版权所有者 未能在 停止后60天。

此外,您从特定版权所有者处获得的许可证是 如果版权所有者通知您 以合理的方式违反,这是你第一次 收到违反本许可证(任何工作)的通知 抄写员持票人,你必须在30天内纠正违规行为 您收到通知。

根据本节终止您的权利并不终止 从您处收到副本或权利的各方的许可证 这个执照。如果你的权利被终止而不是永久的 恢复后,您没有资格获得相同的新许可证 第10节下的材料。

<H4>9。无需接受复印件。

您无需接受此许可证即可接收或运行 程序的副本。覆盖工程的辅助传播 仅因使用点对点传输而发生 同样地,接收副本也不需要接受。然而, 除此许可证外,其他任何内容都不能授予您传播或 修改任何涉及的工作。这些行为侵犯了版权 不接受此许可证。因此,通过修改或传播 涵盖的工作,表示您接受此许可证。

<H4>10。下游接收者的自动许可。

每次你传达一个覆盖的作品,接受者会自动 从原始许可人处获得运行、修改和 根据此许可证传播该作品。你没有责任 以强制第三方遵守本许可证。

"实体交易"是指 组织,或基本上所有资产的一个,或细分 组织,或合并组织。如果 工作结果来自实体交易,每个交易方 收到作品副本的交易也会收到 党的前任所拥有或可能拥有的工作许可证 根据上一段的规定,加上 相关前任的相应工作来源,如果 前任拥有它,或者可以通过合理的努力获得它。

您不得对 根据本许可证授予或确认的权利。例如,你可以 不征收许可费、使用费或其他费用 根据本许可证授予的权利,您不得提起诉讼 (包括诉讼中的交叉索赔或反诉)声称 任何专利权的提出、使用、出售、提供 出售或导入程序或其任何部分。

<H4>11。专利。

"贡献者"是根据本协议授权使用的版权所有者。 程序或程序所基于的工作的许可证。这个 这样授权的作品称为贡献者的"贡献者版本"。

贡献者的"基本专利权"都是拥有的专利权 或由出资人控制,无论是已经获得还是 以后获得的,会以某种方式被侵犯的,允许的 根据本许可证,制作、使用或销售其贡献者版本, 但不包括仅作为 进一步修改贡献者版本的结果。为了 在本定义中,"控制"包括授予 以符合 此许可证。

每个贡献者都授予您一个非排他性的、全球范围的、免版税的 根据出资人的基本专利权利要求,向 制作、使用、出售、要约出售、进口和以其他方式运行、修改和 传播其参与者版本的内容。

在以下三段中,"专利许可证"是 不实施专利的协议或承诺 (例如明确准许实施专利或不 专利侵权诉讼)。向 "一方"是指作出不强制执行 针对当事人的专利。

如果你转达了一个受保护的作品,故意依赖专利许可, 任何人都无法获得相应的作品来源 抄袭,根据本许可证的条款,通过 公共网络服务器或其他易于访问的方式, 那么您必须(1)使相应的源 或(2)安排剥夺自己的利益 此特定工作的专利许可,或(3)以某种方式安排 符合本许可证的要求,延长专利 向下游收件人颁发许可证。""明知故犯"的意思是 事实上,如果没有专利许可证, 在一个国家的受保工作,或您的接收者对受保工作的使用 在一个国家,会侵犯一项或多项可识别的专利 您有理由相信有效的国家。

如果,依据或与单一交易有关,或 安排、传达或传播 涵盖的工作,并授予一些当事人专利许可 接收授权他们使用、传播、修改 或转让所涉作品的特定副本,然后转让专利许可证 您的授权将自动扩展到覆盖的所有收件人 工作并以此为基础工作。

如果专利许可证不包含在 其覆盖范围、禁止行使或以 不行使下列一项或多项权利 根据本许可证授予。如果你不愿意 是与 软件分销业务,根据该业务,您可以向 第三方根据您的活动范围 第三方授予任何一方的工作 谁会得到你的专利,一个歧视性的专利 许可证(a)与由 你(或这些副本的复印件),或(b)主要为了 与包含 包括的工作,除非你达成协议,或专利 许可证于2007年3月28日之前颁发。

本许可证中的任何内容不得解释为排除或限制 任何默示许可或其他侵权抗辩 否则将根据适用的专利法提供给您。

<H4>12。不放弃他人的自由。

如果对你施加了条件(无论是通过法院命令、协议或 否则)与本许可证的条件相矛盾,它们不 请原谅你不遵守本执照的条件。如果你不能传达 涵盖的工作,以便同时满足您的义务 本许可证及任何其他相关义务, 结果你可能根本无法传达。例如,如果你同意 有义务收取版税以便进一步传达的条款 从你传达节目的人那里,你唯一能 同时满足这些条件,本许可证将完全禁止 从传送节目开始。

<H4>13。远程网络交互;与GNU通用公共许可证一起使用。

尽管本许可证有任何其他规定,如果您修改 程序,您的修改版本必须显著地提供给所有用户 通过计算机网络与它进行远程交互(如果 版本支持这样的交互)一个接收 通过提供对 来自网络服务器的相应源,不收费,通过一些 促进软件复制的标准或习惯方法。这个 对应源应包括任何 GNU通用公共许可证第3版所涵盖的工作,即 根据以下段落合并。

尽管本许可证有任何其他规定,您仍有 允许将任何涵盖的工作与许可的工作链接或合并 将GNU通用公共许可证的版本3 联合工作,并传达结果NG工作。条款 许可证将继续适用于涵盖工作的部分, 但与之结合的工作仍将由版本控制 GNU通用公共许可证的3。

<H4>14。本许可证的修订版。

自由软件基金会可发布修订版和/或新版本 《GNU阿费罗通用公共许可证》。这样新 版本在精神上与现在的版本相似,但是 在解决新问题或关注点方面有不同的细节。

每个版本都有一个可区别的版本号。如果程序 指定gnu affero general的特定编号版本 公共许可证"或任何更高版本"适用于它,您有 选择遵守下列任一编号的条款和条件 版本或由自由软件发布的任何更高版本 基金会。如果程序未指定 GNU Affero通用公共许可证,您可以选择任何版本 自由软件基金会发布的

如果程序指定代理可以决定将来的版本 可以使用GNU的Affero通用公共许可证,该代理 接受某个版本的公开声明将永久授权您 为程序选择该版本。

以后的许可证版本可能会为您提供附加的或不同的 权限。但是,对任何 作者或版权所有者,因为您选择遵循 更高版本。

<H4>15。免责声明。

在许可的范围内,本计划不作任何保证。 适用法律。除非另有书面说明,否则版权 持有人和/或其他方"按原样"提供计划 任何形式的明示或默示保证,包括但不包括 仅限于,适销性和适用性的默示保证 特殊目的关于质量和 节目的表演是和你一起的。如果程序证明 有缺陷的,你承担所有必要的维修、修理或 更正。

<H4>16。责任限制。

在任何情况下,除非适用法律要求或书面同意 任何版权持有人或任何其他修改和/或 按上述规定传送节目,并对您造成的损失负责, 包括任何一般、特殊、附带或后果性损害 因使用或无法使用程序而产生的(包括但不限于 不限于数据丢失或数据不准确或 您或第三方遭受的损失或程序失败 与任何其他程序一起运行),即使该持有人或其他 已通知一方此类损害的可能性。

<H4>17。解释第15和16条。

如果提供了免责声明和责任限制 以上条款不能按其条款赋予当地法律效力, 复审法院应适用最接近的当地法律 绝对放弃与 程序,除非担保或责任承担伴随 作为收费回报的节目副本。

条款和条件结束

如何将这些条款应用于您的新程序

如果你开发了一个新的程序,并且你希望它是最好的 可能对公众有用,实现这一目标的最好方法是 自由软件,每个人都可以在这些 条款:< /P>

为此,请在程序中附加以下通知。最安全的是 将它们附加到每个源文件的开头,使其处于最有效的状态 排除担保;每个文件至少应该有 "版权"行和指向完整通知所在位置的指针。

INSTALLED_APPS=["django.contrib.admin",# ..."taskmanager",]
4

还可以添加有关如何通过电子和纸张与您联系的信息 邮件,

如果您的软件可以通过计算机与用户进行远程交互 网络,您还应该确保它提供了一个wa用户可以 找到它的来源。例如,如果您的程序是web应用程序,则 界面可以显示一个"源"链接,该链接将用户指向一个存档 密码的。有很多方法可以提供源代码,而且不同 对于不同的程序,解决方案会更好;参见第13节 具体要求。

你还应该找你的雇主(如果你是程序员的话)或者 学校,如果有的话,签署一份程序的"版权免责声明" 必要的。更多信息,以及如何申请和遵循 gnu agpl,请参见https://www.gnu.org/licenses/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java以编程方式最小化JInternalFrame?   java使用JsonPath将不均匀列表提取为类型化对象   spring如何将java/resources文件获取到InputStream?   Java逻辑错误并不总是存在   java Firebase,更新特定字段   Java stream groupby并同时加入以进行csv导出   java安卓:如果出现任何声音,监听器将录制声音   java如何从多个文件中轮询最后修改的文件并发送到apache camel中的目标端点?   java是否返回多个比较器?   JavaBean IO:Date MMM在CAPS中不解析   当JButton从另一个类单击时,java正在更新JLabel   基类中子类的Java泛型初始化   jakarta ee Java ee制作一个以毫秒为间隔的计时器来发送数据包   json Windows Azure日期格式转换为Java日期