django signals 通过:
python 代码
- from django.db.models import signals
- from django.dispatch import dispatcher
- dispatcher.send(signal=signals.post_save, sender=self.__class__, instance=self)
来定义你需要抛出的signals的地方和类型,django自己本身支持8个signals:
class_prepared,
pre_init,
post_init,
pre_save
,
post_save
,
pre_delete,
post_delete,
post_syncdb。然后通过:
python 代码
- from django.contrib.auth import models as auth_app
- dispatcher.connect(create_superuser, sender=auth_app, signal=signals.post_save)
来捕获你想要的signals,这里是auth_app 的signals.post_save,当捕获到这个signals时调用create_superuser函数,这个函数可以获得抛出signals的对象实例(instance),但是我发现,这个实例的属性是可以得到的,但是却不具备数据库关系。就是通过这个实例并不能得到外键对象的属性。例如: 我们有对象A和B, B是A的外键,利用signals我们获得了A的实例a,但是通过a我们并不能获得B的的属性。下面讲一个我在项目中的应用:
曾经写过一个对网站的优化(django),在测试过程中发现数据库的连接数太大,有些是代码的原因,有些在代码级别不好改,所以就准备为这些连接写一个 缓存。基本思想是,从数据库取出来的queryset通过memcached缓存,以后的连接就直接到缓存去取,如果缓存中没有就到数据库中去取,然后缓 存起来。这过程中会涉及到一个问题,就是怎样保证数据库和缓存中数据的同步,在这里我用的是
django signals。
singals可以通过:
python 代码
- dispatcher.connect(exe_signals, signal=signals.post_save)
- dispatcher.connect(exe_signals, signal=signals.post_delete)
来捕获数据库的变动,然后执行exe_signals函数来处理缓存,将缓存中变动的部分从缓存中清除出去,从而达到数据的同步。这样只要有个好的清除算法,我们就不用来设置缓存的过期时间,因为缓存中的数据永远是最新的。
分享到:
相关推荐
基于Django的国内疫情数据可视化Web系统源码 基于Django的国内疫情数据可视化Web系统源码 基于Django的国内疫情数据可视化Web系统源码 基于Django的国内疫情数据可视化Web系统源码 基于Django的国内疫情数据可视...
毕业设计基于Django的国内疫情数据可视化web系统项目源码.完美代码注释,新手也可实操,无障碍,也可作为期末大作业,Python语言 介绍 专业实践 使用说明 配置环境即可使用 毕业设计基于Django的国内疫情数据可视化...
如果想要内网利用 django 及 pyecharts 做数据分析展示, 那必须把相关的js 文件下载放到 django 的 static 目录。 再修改pyecharts 生成的 html 代码。
一个演示Django项目的示例,展示了Django Signals的使用 该存储库包含上此文章的。 入门 先决条件 请确保您在计算机上安装了以下软件: 您选择的IDE或编辑器 运行应用程序 克隆存储库 $ git clone ...
今天小编就为大家分享一篇Django读取Mysql数据并显示在前端的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
一个基于 Django 开发,倾向于数据中心运营商使用的,拥有数据中心、客户、机柜、设备、跳线、物品、测试、文档等一系列模块的资源管理平台,解决各类资源集中管理与数据可视化的问题。 一个基于 Django 开发,...
基于Python和Echarts职位画像系统,用Scrapy抓取招聘数据,使用Django+echarts完成数据可视化
个人毕业设计项目,本次项目对疫情数据进行整合清洗,使用Django+vue3+mysql前后分离的形式,将疫情数据数据进行动 态可视化。设计了“全国累计病例”、“全国省份新增疫情数据 Top10柱形图 ”、“全国新增疫情数据 ...
基于Python和Echarts职位画像系统,使用Scrapy抓取职位招聘数据,使用Django+echarts完成数据可视化。 环境安装配置 建议直接安装anconda,然后git clone后进入项目目录,执行pip install -r requirements.txt 项目...
基于django+vue的电影数据可视化项目源码+全部数据.zip本项目是一套基于django+vue的电影数据可视化项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的python学习者。也可作为课程设计、期末大...
今天小编就为大家分享一篇django 删除数据库表后重新同步的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Django2+ MySQL8 数据插入和查询 Django2+ MySQL8 数据插入和查询
学习Django基础知识,搭建数据库并实现数据交互。在本地实现完整的流程。
基于Django LayUI HBase的文献数据挖掘系统.zip
基于Django的国内疫情数据可视化项目源码+数据库(毕业设计).zip已获导师指导并通过的高分项目。本项目是一套基于Django的国内疫情数据可视化项目,主要针对计算机相关专业的正在做毕设的学生和需要项python学习者...
使用Django框架开发的企业OA管理系统源码 使用Django框架开发的企业OA管理系统源码 使用Django框架开发的企业OA管理系统源码 使用Django框架开发的企业OA管理系统源码 使用Django框架开发的企业OA管理系统源码 ...
Django 排他锁保证数据安全.md
主要介绍了Django上使用数据可视化利器Bokeh解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
使用Django开发的天天生鲜商城源码 使用Django开发的天天生鲜商城源码 使用Django开发的天天生鲜商城源码 使用Django开发的天天生鲜商城源码 使用Django开发的天天生鲜商城源码 使用Django开发的天天生鲜...
Python基于Django LayUI HBase的文献数据挖掘系统Python基于Django LayUI HBase的文献数据挖掘系统Python基于Django LayUI HBase的文献数据挖掘系统Python基于Django LayUI HBase的文献数据挖掘系统Python基于Django...