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
 1 from time import sleep
 2 from celery import Celery
 3 
 4 # 参数('任务的名字',配置消息载体)
 5 app = Celery("tasks", broker='redis://localhost:6379/1')
 6 
 7 # 用app作为装饰器为add函数定制任务
 8 @app.task
 9 def add(a, b):
10     sleep(5)
11     return a + b
12 
14 if __name__ == '__main__':
15     # add.delay表示异步计算add函数,返回计算结果的一个uuid标示
16     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:  严重错误,影响到系统框架代码的错误

posted @ 2019-11-15 17:59  Tom's  阅读(460)  评论(1编辑  收藏  举报