django 之(六) --- Celery|Admin
Celery - 分布式任务队列
简介:
Celery是一个简单,灵活且可靠的分布式系统,可以处理大量消息,同时为操作提供维护该系统所需的工具。这是一个任务队列,着重于实时处理,同时还支持任务调度。
消息队列
异步任务
定时任务
需要了解的知识
选择并安装消息容器(载体)
安装Celery并创建第一个任务
开启工作进程并调用任务
记录工作状态和返回的结果
简单使用:
- 安装
- pip install -U "celery[redis]" 使用redis当作载体
- pip install celery 安装celery
- 配置:
- settings.py中
1 # Celery settings
2 CELERY_BROKER_URL = 'redis://localhost:6379/1'
1 CACHES = {
2 "default": {
3 "BACKEND": "django_redis.cache.RedisCache",
4 "LOCATION": "redis://127.0.0.1:6379/1",
5 "TIMEOUT": 60 * 60 * 24,
6 "OPTIONS": {
7 "CLIENT_CLASS": "django_redis.client.DefaultClient",
8 }
9 }
10 }
- 创建
- 创建应用、任务doc/code/tasks.py
from time import sleep
from celery import Celery # 参数('任务的名字',配置消息载体)
app = Celery("tasks", broker='redis://localhost:6379/1') # 用app作为装饰器为add函数定制任务
@app.task
def add(a, b):
sleep(5)
return a + b if __name__ == '__main__':
# add.delay表示异步计算add函数,返回计算结果的一个uuid标示
print(add.delay(4, 6))
- 启动
- 注意:启动时要在任务文件所在文件夹下输入命令
- celery -A tasks worker --loglevel=info [tasks:(工程)文件名;worker模式;loglevel:日志级别]
Django中使用:
- 安装:pip install django-celery-results
- 迁移:
Admin
介绍:
Django中默认集成了后台数据管理页面,通过简单的配置就可以实现模型后台的Web控制台。
管理界面通常是给系统管理员使用的,用来完成数据的输入、删除、查询等工作
如果没有集成或者使用第三方后台框架,可以在settings中的INSTALLED_APPS添加'django.contrib.admin'
使用:
- python manage.py createsuperuser 终端此命令后回车,输入:用户名、邮箱、密码、确认密码
- 127.0.0.1:8000/admin/ 浏览器输入此路由进入后台管理页面,输入用户名、密码
模型:
- django默认管理的模型有:用户、组
- 在admin.py文件中注册admin.site.register(模型名)。添加自己的数据模型到后台管理中
定制
如果觉得默认的站点样式不能满足需求,则开发者可以通过继承Django定义的管理员数据模型,模版
站点类来开发出个性化的管理员站点。只需要注册的时候添加自己的管理员类
- 创建管理员:class StudentAdmin(admin.ModelAdmin):
- 注册管理类:admin.site.register(Students.StudentAdmin)
Log级别
info
debug
warning:警告
error: 错误
critical: 严重错误,影响到系统框架代码的错误
django 之(六) --- Celery|Admin的更多相关文章
- Django App(六) Customing Admin Form
这一篇主要是呼应第二篇时留下来的一个问题,就是如何自定义默认app admin下的Form 1.绑定数据实体 通过第二篇的努力,已经完成了数据实体到数据库的映射,可以将界面的更改保存到数据库,我们建 ...
- VS2019 开发Django(六)------Admin中图片上传
导航:VS2019开发Django系列 该篇继续完善在Django的管理界面上传图片,因为LazyOrders小程序中菜单需要展示图片,而不是一个文本路径,所以我们还需要继续改造一下. 1)安装pil ...
- Django 中使用 Celery
起步 在 <分布式任务队列Celery使用说明> 中介绍了在 Python 中使用 Celery 来实验异步任务和定时任务功能.本文介绍如何在 Django 中使用 Celery. 安装 ...
- Django中使用Celery
一.前言 Celery是一个基于python开发的分布式任务队列,如果不了解请阅读笔者上一篇博文Celery入门与进阶,而做python WEB开发最为流行的框架莫属Django,但是Django的请 ...
- Django中使用Celery实现定时任务(用djcelery)
一.引言 Django是python语言下的一个比较热门的Web框架,越来越多的企业和开发者使用Django实现自己的Web服务器.在Web服务器开发过程中,有时候我们不仅仅是要实现Web服务器端和用 ...
- Django之使用celery和NGINX生成静态页面实现性能优化
性能优化原理: 当我们要给client浏览器返回一个页面时,我们需要去数据库查询数据并将数据和基本页面模板渲染形成页面返回给客户端,但如果每一个用户访问时都去查询一次首页的的数据时,当日访问量很大时那 ...
- Python—在Django中使用Celery
一.Django中的请求 Django Web中从一个http请求发起,到获得响应返回html页面的流程大致如下: http请求发起 经过中间件 http handling(request解析) ur ...
- 7) 项目准备流程 和 django权限六表
一.项目准备 1. 创建django项目 2. 创建数据库 —— init文件中声明mysql —— settings中配置数据库 import pymysql pymysql.install_as_ ...
- Django基础六之cookie和session
Django基础六之cookie和session 目录 Django基础六之cookie和session 1. cookie和session介绍 1.1 cookie 简介 1.2 cookie的缺陷 ...
随机推荐
- 关于反编译pyc的一点技巧
现在最流行的是用 https://github.com/rocky/python-uncompyle6 但是有些python小版本不一样,比如2.7.6的某版本,开头的magic number在这个项 ...
- Java中程序初始化的顺序
1,在一个类的内部(不考虑它是另一个类的派生类):很多人认为,类的成员变量是在构造方法调用之后再初始化的,先不考虑这种观点的正确性,先看一下下面的代码: class Test01...{ public ...
- CentOS7.x安装Wiki.js知识库
近期有个需求,搭建一个知识管理系统,所以就找了几个可作为知识管理的软件,最终定位到wiki.js,之所以选择这个,是看中了它的易部署性,该项目是在2016年12月推出了第一个版本,算是比较新的项目了, ...
- SVG矢量绘图 path路径详解(贝塞尔曲线及平滑)
以二次贝塞尔曲线的公式为例: js函数: //p0.p1.p2三个点,其中p0为起点,p2为终点,p1为控制点 //它们的坐标用数组表示[x,y] //t的范围是0-1 function qBerzi ...
- BZOJ 5494: [2019省队联测]春节十二响 (左偏树 可并堆)
题意 略 分析 稍微yy一下可以感觉就是一个不同子树合并堆,然后考场上写了一发左偏树,以为100分美滋滋.然而发现自己傻逼了,两个堆一一对应合并后剩下的一坨直接一次合并进去就行了.然鹅我这个sb把所有 ...
- Ubuntu 执行 apt-get install ××× 报错
执行apt-get install fcitx时,报如下错误 grub-pc E: Sub-process /usr/bin/dpkg returned an error code (1) 通过执行下 ...
- PHP mysqli_close() 函数
关闭先前打开的数据库连接: <?php $con=mysqli_connect("localhost","my_user","my_passwo ...
- sql server 复习笔记1
查询数据库是否存在: if DB_ID("testDB")is not null; 检查表是否存在: if OBJECT_ID(“textDB”,“U”) is not null ...
- 爬虫----异步---高性能爬虫----aiohttp 和asycio 的使用
前情提要: 首先膜拜loco大佬 肯定有人像我一样.不会异步,发一下. 一:性能比对 多进程,多线程,(这里不建议使用,太消耗性能) 进程池和线程池 (可以适当的使用) 单线程+异步协程 (推荐使 ...
- python实现随机生成头像
今天遇到如何给用户分配随机头像的问题,想着要在本地放很多图片,有点无聊,就找了一些生成头像的工具.发现gravatar生成图像还不错,挺好玩的. 1.下面上代码 # -*- coding: utf-8 ...