下面是关于“python3.8+django2+celery5.2.7环境准备”的完整攻略。
一、环境准备
- 下载Python3.8
在Python官网上下载Python3.8的安装包并安装,或者通过apt、yum等包管理工具进行安装。
- 安装并配置virtualenv
virtualenv是一个可以创建虚拟Python环境的工具,并且可以在不同的项目中使用不同的Python环境,保证环境的独立性。可以通过以下命令安装:
pip3 install virtualenv
安装完成后,可以在项目目录下创建一个虚拟环境:
virtualenv env
- 激活虚拟环境并安装Django和Celery
进入虚拟环境:
source env/bin/activate
在虚拟环境中,可以使用pip安装Django和Celery:
pip install django
pip install celery
二、用Django和Celery实现异步任务调度
- 创建Django项目
首先,需要创建一个Django项目,可以通过以下命令:
django-admin startproject myproject
- 创建Django App
在项目目录下使用以下命令创建一个Django App:
python manage.py startapp myapp
- 创建Celery异步任务
在myapp的目录中创建一个tasks.py文件,并编写如下的异步任务:
from celery.decorators import task
@task()
def add(x, y):
return x + y
- 配置Django和Celery
在myproject目录下创建一个celery.py文件,并配置如下内容:
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
app = Celery('myproject', broker='amqp://guest@localhost//')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
在myproject的settings.py文件中添加如下配置项:
CELERY_TIMEZONE = 'Asia/Shanghai'
CELERY_BROKER_URL = 'amqp://guest@localhost//'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_BEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler'
- 启动Celery Worker
在虚拟环境中运行以下命令启动Celery Worker:
celery -A myproject worker -l info
- 调用异步任务
在views.py文件中添加以下代码:
from django.shortcuts import render
from .tasks import add
def index(request):
result = add.delay(1, 2)
return render(request, 'index.html', {'result': result})
在myapp目录下创建一个名为index.html的模板,用于显示异步任务的运行结果:
<!DOCTYPE html>
<html>
<head>
<title>Django and Celery</title>
</head>
<body>
<h1>{{ result.get }}</h1>
</body>
</html>
- 启动Django并测试
在虚拟环境中运行以下命令启动Django:
python manage.py runserver
在浏览器中访问 http://localhost:8000/,可以看到运行结果为3。
以上就是关于“python3.8+django2+celery5.2.7环境准备”的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3.8+django2+celery5.2.7环境准备(python测试开发django) - Python技术站