如何避免 AppConfig.ready() 方法在 Django 中运行两次

2024-01-22

我想在 Django 服务器启动时执行一些代码,但我希望它只运行一次。目前,当我启动服务器时,它会执行两次。文档 https://docs.djangoproject.com/en/1.8/ref/applications/说这可能会发生并且:

您应该在 AppConfig 类上放置一个标志以防止重新运行 应该只执行一次的代码。

知道如何实现这一目标吗?下面的打印语句仍然执行两次。

from django.apps import AppConfig
import app.mqtt
from apscheduler.schedulers.background import BackgroundScheduler

class MyAppConfig(AppConfig):
    name = 'app'
    verbose_name = "HomeIoT"
    run_already = False

    def ready(self):
        if MyAppConfig.run_already: return
        MyAppConfig.run_already = True
        print("Hello")

当你使用python manage.py runserver,Django 启动两个进程,一个用于实际的开发服务器,另一个在代码更改时重新加载您的应用程序。

您可以在不使用重新加载选项的情况下启动服务器,并且您将只看到一个进程正在运行:

python manage.py runserver --noreload

也可以看看the ready()方法在 Django 中运行两次 https://stackoverflow.com/questions/37441564/redefinition-of-appconfig-ready.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何避免 AppConfig.ready() 方法在 Django 中运行两次 的相关文章

随机推荐

  • sed 就地标志适用于 Mac (BSD) 和 Linux

    是否有调用sedtodo 无需备份即可在 Linux 和 Mac 上进行就地编辑 虽然 BSDsedOS X 附带的似乎需要sed i GNUsedLinux 发行版通常将引号解释为空输入文件名 而不是备份扩展名 并且需要sed i 反而
  • 如何在Racket中使用TCP?

    我试图从客户端向服务器发送消息 并在服务器上打印该消息 服务器 rkt lang racket define the listener tcp listen 9876 define values in out tcp accept the
  • 检测/解析文本中的邮寄地址

    是否有任何开源 商业库可以检测文本中的邮寄地址 就像 Apple 的邮件应用程序在 Mac iPhone 上为地址添加下划线一样 我一直在网上做一些研究 想法似乎是使用 Google Regex 或完整的 NLP 软件包 例如斯坦福大学的
  • JS改变元素的颜色Onclick未定义的颜色

    我想制作一个颜色更改器按钮 但最后一次单击后 颜色将设置为未定义 知道如何删除它吗 var color Orange Red Green Blue var i 0 document querySelector changeColorBtn
  • 如何让我的 Selenium 测试不那么脆弱?

    我们使用 Selenium 来测试 ASP NET 应用程序的 UI 层 许多测试用例测试跨越多个页面的较长流程 我发现测试非常脆弱 不仅因为实际更改页面的代码更改而被破坏 而且还因为无害的重构而被破坏 例如重命名控件 因为我需要将控件的
  • 使用 webpack 创建 less 包

    我需要使用 webpack 创建一个bundle less 文件 其行为与 less loader exctract 文本插件相同 除了它不应该将 less 编译成 css 而只连接所有必需的 less 文件并内联 less 导入 原因是我
  • Webpack 为项目中的图像创建哈希文件名

    在 client components 文件夹中的组件之一中 我从 public images 文件夹导入三个图像 在某个时刻 webpack 为每个图像创建了一个文件 其散列名称如下 0e8f1e62f0fe5b5e6d78b2d9f41
  • ASP.NET 无法正确处理逗号分隔的 cookie

    根据the RFC http www w3 org Protocols rfc2109 rfc2109 Cookie HTTP 标头中的各个 cookie 可以用逗号和分号分隔 但是 ASP NET 无法正确解析逗号大小写 它不会将逗号视为
  • 如何使用 javascript 将地理位置和多个标记结合起来?

    我正在尝试创建一个能够跟踪我的位置并同时能够显示多个标记的地图 我可以结合下面的 2 个 JavaScript 吗 如果不知道我应该怎么做 用于多个标记的 JavaScript
  • 返回具有最高薪水的员工的姓名和薪水的查询是什么

    返回具有最高薪水的员工的姓名和薪水的查询是什么 SELECT Name Salary FROM Minions WHERE Salary SELECT Max Salary FROM Minions 请注意 如果有多于一名员工具有相同的最高
  • 尝试测试异步 Dart ajax HttpRequest 时出错

    这个问题是这个问题的简化版本 测试 dart ajax HttpRequest https stackoverflow com questions 36945795 testing dart ajax httprequest 3694584
  • 在 ubuntu 12.04 上安装 apache 2.4 和 php 5.5

    我正在尝试在 ubuntu 12 04 的虚拟机上设置 apache 2 4 和 php 5 5 的测试环境 第一件事是添加存储库 apt add repository ppa ptn107 apache apt add repositor
  • 使用 Angular2 项目中的 AngularJS (Angular1) 模块

    刚刚开始一个演示 Angular2 项目 以前没有 Angular1 AngularJS 的经验 已经遵循并扩展了在线快速入门和教程 一切都很好 但是我现在想使用库中的一些组件 专为 AngularJS 设计 并且有无穷无尽的问题 大多数有
  • 如何通过函数禁用 jQuery 对话框中的按钮?

    我有一个 jQuery 对话框 要求用户输入某些信息 在这种形式中 我有一个 继续 按钮 我希望这个 继续 按钮仅在所有字段都包含内容后才启用 否则它将保持禁用状态 我编写了一个函数 每次字段状态发生变化时都会调用该函数 但是 我不知道如何
  • 如何覆盖 ControlTemplate 中的属性?

    我有以下 XAML
  • 使用 EXTENSIONS 创建空间数据库时出错

    跑步时psql d mydb c CREATE EXTENSION postgis 我收到以下错误 ERROR could not load library usr local Cellar postgresql 9 3 4 lib rtp
  • 我应该对 Blogger 浏览器应用程序 API 密钥保密吗?

    参考下图中突出显示的 API 密钥 我想知道用于浏览器应用程序的 Blogger API 密钥是否应该保密 我之所以问这个问题 是因为我计划写一篇关于在 JavaScript 中使用 Google Blogger API 的博客文章 并且希
  • 无法通过 c 中的 system() 连接到已经活动的屏幕

    这是我编写的代码部分 用于将 0 填充到在我的 Ubuntu 终端选项卡之一中打开的屏幕会话中 char command 60 strcpy command screen S 8305 pts 1 MYUb X stuff 0 system
  • ui-router动态模板路径

    我正在使用 ui router 0 2 8 我想加载基于设备宽度的模板 我可以毫无问题地获取设备宽度 将其设置在范围等中 但我可以弄清楚如何将其绑定到 stateParams 我在另一个控制器中有范围变量 可以访问状态的控制器 但状态本身不
  • 如何避免 AppConfig.ready() 方法在 Django 中运行两次

    我想在 Django 服务器启动时执行一些代码 但我希望它只运行一次 目前 当我启动服务器时 它会执行两次 文档 https docs djangoproject com en 1 8 ref applications 说这可能会发生并且