我应该把一次性操作操作放在Django框架中的什么位置?

2024-04-26 00:42:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想执行一些一次性操作,比如启动后台线程,每隔30分钟填充一个缓存,作为Django服务器启动时的初始化操作,这样它就不会阻止用户访问网站。我应该把这些代码放在Django的什么地方?在

  • 把它们放进设置.py文件不工作。它似乎会导致循环依赖。在
  • 将它们放入__init__.py文件不起作用。Django服务器多次调用它(原因是什么?)在

Tags: 文件django代码用户py服务器init网站
3条回答

我只是创建独立的脚本并用cron调度它们。诚然,这是一个有点低技术,但它只是工作。只需将其放在项目顶层目录中脚本的顶部,并根据需要调用。在

#!/usr/bin/env python
from django.core.management import setup_environ
import settings
setup_environ(settings)
from django.db import transaction

# random interesting things
# If you change the database, make sure you use this next line
transaction.commit_unless_managed()

我们将一次性启动脚本放入顶层urls.py。这通常是您的管理绑定的地方——它们也是一次性启动的。在

有些人喜欢把这些东西放在settings.py中,但这似乎把设置(没有多大作用)与网站的其他代码(做了一些事情)相混淆。在

对于startserver中的一个操作,您可以使用customs commands,或者如果您想要一个周期性任务或一个任务队列,可以使用celery

相关问题 更多 >