当我运行服务器时,如何让我的 Django 应用程序*做*一些事情?

索林

第一个问题在这里。我是 Python 的初学者,对于我的最终项目,我正在 Django 中制作一个抓取应用程序。当我运行我的服务器时,我希望它启动一个BackgroundScheduler每 10 分钟调用一次我的抓取应用程序的程序。现在我在按钮上有我的调度程序,但我不希望它在按钮上,我希望它在我运行服务器时正常工作,这可能吗?

我试过的:

  • 将我的逻辑写入 apps.py 然后将 appconfig 添加到 INSTALLED_APPS 的设置中,但我得到:

ModuleNotFoundError:没有名为“finance_app.apps.FinanceAppConfig”的模块;'finance_app.apps' 不是一个包

  • 制作我的逻辑所在的 scheduler.py 文件并将其添加到 INSTALLED_APPS 但仍然无法正常工作

apps.py 及其逻辑

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

from finance_app.scraper import scrape


class FinanceAppConfig(AppConfig):
    name = 'finance_app'

    def ready(self):
        print('Initializing scheduler')
        scheduler = BackgroundScheduler()
        scheduler.add_job(scrape, 'interval', second=30)
        scheduler.start()

有效的 BackgroundScheduler:

        scheduler = BackgroundScheduler()
        scheduler.add_job(scrape, 'interval', second=30)
        scheduler.start()

我的视图中的调度程序调用了刮板

def scraper_view(request):
    scrape()

    scheduler = BackgroundScheduler()
    scheduler.add_job(scrape, 'interval', minutes=10)
    scheduler.start()

    return redirect("../")

带有我想删除的视图的按钮

<div style="text-align: center;"><h2 class="subtitlu">
    <a href="{% url 'scraper' %}">Scrape News</a>
</h2>
</div>
索林

我终于想通了,我的刮板文件中有 django_setup() 这就是为什么它不起作用,也供将来参考,在 app.py 的 ready() 函数中,如果您有 AppConfig 以外的任何导入,请导入它们在你的 ready() 函数中,它应该可以工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android:当应用程序关闭时做一些事情

当我在另一个分支上进行开发时,如何在master分支上本地运行Django服务器

当我尝试运行服务器时,我正在使用一个程序,这是一个非常简单的服务器,因为我是Django的新手

如何判断我的Django应用程序是否正在开发服务器上运行?

如何在我的互联网服务器上运行python(django)应用程序?

当我在Django中运行服务器时如何设置默认URL

我想在保存在数据库 django 之前对 ModelForm 的值做一些事情

我可以在本地服务器和 Ubuntu 服务器上运行 Django 应用程序吗?

试图在我的网站上做一些超酷的事情

如何在 VPS 服务器上运行 Django 的应用程序服务器

当我在模拟器中运行我的应用程序时,它显示了一些自动布局错误

为什么GetServerAuthCodeResult已过时?我怎么可以做一些相当于在已安装的应用程序?

当subscribe()完成时做一些事情

在等待 GetAsync 的结果时定期做一些事情

当 AJAX 加载成功完成时做一些事情

当变量数据改变时做一些事情

我在应用程序中有一些错误

我如何在不停止服务器的情况下使用django应用程序背后的加密功能?

如何在新项目中开发/包含Django自定义可重用应用程序?有一些指导方针吗?

当我在 Django 上启动我的服务器时,这个问题怎么办?

当我尝试访问我的 Django 站点时出现内部服务器错误

我如何让服务器运行我的Java程序?

部署 Angular 应用程序似乎在我的服务器上没有做任何事情

当我尝试在Web服务器上写一些数据时,为什么AsyncTask运行两次?

当我的应用程序经常与服务器通信时,我需要服务人员吗?

如何在Gunicorn / WSGI Web服务器上运行Django应用程序?

如何在生产服务器上自动运行Django应用程序

Android - 每次我从片段切换时做一些事情

Django 模板:如果变量不存在,做一些事情