如何在django视图中导入芹菜任务



我正在和django一起学习芹菜。我正试图用django和芹菜创建一个简单的添加项目。我用django创建了一个简单的网络应用程序。在index.html模板中,我有一个包含2个输入字段的表单。第一个输入字段采用x value(用于相加的第一个数字(。第二个输入字段采用y value(用于相加的第二个数字(。提交表单后,我希望运行芹菜任务。django项目名称为core,应用程序名称为mainapp

芹菜任务如下

mainapp/tasks.py

from celery import Celery
from celery.schedules import crontab
from celery import shared_task
@shared_task
def add_num(x, y):
return x+y

核心/芹菜.py

from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings')
app = Celery('core')
app.conf.timezone = 'UTC'
app.config_from_object("django.conf:settings", namespace="CELERY")
app.autodiscover_tasks()

mainapp/views.py

from django.shortcuts import render
from . import tasks
# Create your views here.
def index(request):
if request.method == 'POST':
x = request.POST['x']
y = request.POST['y']
print(x, y)
add_num.delay(x, y)
return render(request, 'index.html')
return render(request, 'index.html')

我在后台运行了rabbitmq命令

brew services start rabbitmq

芹菜在一个单独的终端窗口中运行,并使用以下命令

celery -A core worker -B -l INFO

当我提交表格时,我会收到以下错误。

NameError: name 'add_num' is not defined

我想我没有正确地将任务导入views.py。

导入不正确

低于线的变化

from . import tasks

from .tasks import add_num

相关内容

  • 没有找到相关文章

最新更新