Django - 在启动时执行代码

2024-05-05

我正在使用 Django 1.9.3。我有一个包含多个应用程序的项目。我想在项目启动时更新其中一个应用程序的表。

用例:

例如,假设我想在我的网站上销售商品。我有一个包含模型项目的应用程序。我在 Django 之外有一个网络服务,它提供服务“give_all_items_available()”。我想向我的用户提供使用该网站的项目列表。所以我认为我必须使用该网络服务输入定期更新我的数据库(在启动时和每隔一段时间)。

我已经编写了所有代码,如下所示(这是一个示例):

from my_app.models import My_table

def on_startup():
     my_thread = Thread(execute = populate_tables, loopmode = True, background = True) # thread running in loopmode in background
     my_thread.start() # starts the thread and returns

def populate_tables()
     response = call_webservice() # let's imagine this method returns data for creating a new model instance
     My_table(response).save() # this save() isn't threadsafe in this example, but that's not my point ;-)

我的问题是我不知道在哪里编写这段代码

尝试:

到目前为止,对于 Django 1.6.5,我带来了一些来自init我的应用程序的 .py 文件。它正在工作,但我认为它非常丑陋(用“导入”启动一个线程看起来真的像隐藏代码)。

我在 Django 1.9 中看到了“ready()”方法。但文档中写的是不处理此方法中的模型,所以我很困惑。

我可以在启动服务器的命令中添加启动代码,但此启动代码是面向应用程序的,在我看来,项目与它无关。

你会推荐什么?

如果需要,我很乐意提供更多信息。

提前致谢,


为什么你不使用Celery http://docs.celeryproject.org/en/latest/index.html反而?我知道您在问如何在启动时填充您的 Item 表,但是...我认为这里的计划芹菜任务适合并以自然的方式解决您的问题。

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

Django - 在启动时执行代码 的相关文章

随机推荐

  • 捕获 System.Exception 总是不好的做法吗?

    请考虑下面的代码 它抛出三个不同的异常 即 System Configuration ConfigurationErrorsException System FormatException and System OverflowExcept
  • C/C++ 中的最小二乘回归

    如何在 C C 中实现因子分析的最小二乘回归 the黄金标准是LAPACK http www netlib org lapack lug node27 html 你特别想要xGELS
  • 如何注销多个非当前用户的会员用户?

    我正在使用属于 MVC2 默认项目一部分的 MembershipProvider 我希望能够获取用户名列表 注销用户 并在需要时销毁他们的会话 我能想到的最接近的是 foreach string userName in UserNames
  • 如何对表的选定列进行 mysql 转储

    我有一个要求 我必须仅对表的一列进行 mysql 转储 由于该表有太多列 我不想转储整个表 我必须将表的转储从一台服务器转移到另一台服务器 知道我该怎么做吗 如果您想获取包含架构的 mysql 转储 可以按照以下步骤完成 创建临时表 cre
  • PHP Money_format(); £ 符号不是 GBP

    我不知道如何获取货币符号 目前我正在使用 setlocale LC MONETARY en GB money format i 1000 这给了我输出 GBP1 000 但我想要 1 000 我已经查看了 PHP 手册 但没有多大帮助 有任
  • Pinterest 喜欢自定义 GridView

    我是 Android 新手 我正在寻找网格视图的逻辑 例如为 iPhone 构建的 pinterest homescreen 应用程序 一个大号 图像来自服务器 我需要以以下形式显示并具有分页效果 即在滚动上加载图像 如果可以的话请回复 我
  • 是否有将二进制数据打包成 UTF-16 字符串的标准技术?

    在 NET中 我有任意二进制数据存储在byte 例如图像 现在 我需要将该数据存储在string 旧 API 的 注释 字段 有没有标准技术packing将此二进制数据转换为string 我所说的 打包 是指对于任何相当大且随机的数据集 字
  • 给定列名称和替换的字符向量重命名多个列[重复]

    这个问题在这里已经有答案了 虽然这很容易用基本 R 或setnames in data table or rename in dplyr0 5 自从rename 已被弃用 我找不到一种简单的方法来做到这一点dplyr 0 6 0 下面是一个
  • Postgres 在转换时函数错误/失败时返回空值

    我正在尝试转换text价值观timestamp价值观 对于下表称为a id c1 1 03 03 2000 2 01 01 2000 3 12 4 1990 4 12 Sept 2011 5 12 1 1999 12 33 12 6 24
  • 如何在显示项目之前为 RecyclerView 高度设置动画

    我怎样才能 或者我应该说什么时候可以在显示项目之前对 recyclerView 高度进行动画处理 我可以在 onMeasure 中获得最终高度 但项目总是出现太快并且动画不起作用 关于如何让这个动画发挥作用有什么想法吗 None
  • 使用 jar 外部的配置启动 .jar,但能够从任何当前目录执行此操作

    我一直在努力解决一个特定的问题 我在 jar 文件中有一个 Java 程序 并且在 jar 之外有一个 lib 目录和一个 config 目录 但与 jar 本身所在的目录位于同一目录中 我正在尝试参考config foo config从代
  • C# 泛型中的通配符等效项

    假设我有一个通用类 如下所示 public class GeneralPropertyMap
  • 需要在 Android 应用程序卸载期间执行一些活动

    我正在开发一个应用程序 如果用户卸载该应用程序 我需要登录该应用程序 所以我正在遵循这种方法应用程序如何检测到它将被卸载 https stackoverflow com questions 18692571 how it works war
  • 卷曲 -GET 和 -X GET

    Curl 提供了一系列不同的带有 X 前缀的 http 方法调用 但也提供了不带 X 的相同方法 我两种都试过了 但我似乎无法弄清楚其中的区别 有人可以快速向我解释这两种操作有何不同吗 默认情况下 您使用curl 而无需明确说明要使用哪种请
  • 关闭网站的 IE 8 兼容模式

    我的公司使用IE8作为默认浏览器 并且默认为所有内联网站点设置兼容模式 我正在构建一个在关闭兼容模式时可以工作的 Intranet 站点 我正在使用 Reset css 和几个开源 JavaScript 程序 例如数据表 我想做的是强制关闭
  • 如何使用 Google Drive API 通过服务帐户访问域中的共享文件?

    我一直在尝试从 Python 3 7 脚本访问有关 Google Shared Drive 文件的一些简单信息 上次修改共享云端硬盘上的 Google 表格文件的时间 我创建了一个服务帐户在 GCP Drive API 菜单中 它可以通过
  • CakePHP Facebook 集成与 CakePHP-Facebook-Plugin 的注销问题

    我正在寻找一种方法CakePHP Facebook 插件 https github com webtechnick CakePHP Facebook Plugin让用户退出我的应用程序 但不让他们退出他们自己的 Facebook 如果我调用
  • XSD 格式

    该 XSD 部分来自 http www iana org assignments xml registry schema netconf xsd http www iana org assignments xml registry sche
  • 在另一个数组的每隔一个元素之后插入一个数组中的元素(一次一个)(不均匀拉链)

    合并两个数组的优雅方法是什么 使得生成的数组具有第一个数组中的两个项目 后跟第二个数组中的单个项目 以这种方式重复 array1 A1 A2 A3 A4 A5 potentially longer array2 B1 B2 B3 B4 B5
  • Django - 在启动时执行代码

    我正在使用 Django 1 9 3 我有一个包含多个应用程序的项目 我想在项目启动时更新其中一个应用程序的表 用例 例如 假设我想在我的网站上销售商品 我有一个包含模型项目的应用程序 我在 Django 之外有一个网络服务 它提供服务 g