当前位置: 首页 > news >正文

烟台高新区网站企业营销策划

烟台高新区网站,企业营销策划,在哪人网站要以接it项目做,宁波网站建设设计公司信息Django的信号机制详解 Django提供一种信号机制。其实就是观察者模式#xff0c;又叫发布-订阅(Publish/Subscribe) 。当发生一些动作的时候#xff0c;发出信号#xff0c;然后监听了这个信号的函数就会执行。 Django内置了一些信号#xff0c;比如#xff1a; django.…Django的信号机制详解 Django提供一种信号机制。其实就是观察者模式又叫发布-订阅(Publish/Subscribe) 。当发生一些动作的时候发出信号然后监听了这个信号的函数就会执行。 Django内置了一些信号比如 django.db.models.signals.pre_save 在某个Model保存之前调用 django.db.models.signals.post_save 在某个Model保存之后调用 django.db.models.signals.pre_delete 在某个Model删除之前调用 django.db.models.signals.post_delete 在某个Model删除之后调用 django.core.signals.request_started 在建立Http请求时发送 django.core.signals.request_finished 在关闭Http请求时发送 我们要做的就是注册一个receiver函数。例如如果要在每次请求完成之后打印一行字。 可以使用回调的方式注册 # receiver def my_callback(sender, **kwargs):print(Request finished!)# connect from django.core.signalsimport request_finishedrequest_finished.connect(my_callback) 也可以使用装饰器的方式注册下面这段代码和上面完全是等价的。 from django.core.signalsimport request_finished from django.dispatchimport receiverreceiver(request_finished) def my_callback(sender, **kwargs):print(Request finished!) receiver回调函数除了可以使用sender之外还可以使用其他一些参数比如针对pre_save函数 sender发送者如果是pre_save的话就是model class instance实例 raw using update_fields post_save()是一个比较实用函数可以支持一些联动的更新。而不必让我们每次都写在view里面。比如有用户提交了退款申请我们需要把订单的状态修改成“已退款”的状态。就可以使用信号机制而不必在每处都修改。 receiver(post_save, senderRefundForm) deforder_state_update(sender, instance, created, **kwargs):instance.order.state REFUNDINGinstance.order.save() # 这里order是refundform的一个外键 当然这里可以写的更多更周全例如退款单取消改回状态等。 观察者是非常实用的一个设计模式Django也支持用户 自定义 一些信号。 使用 init.py default_app_config bug_management.apps.BugManagementConfig apps.py from django.apps import AppConfigclass BugManagementConfig(AppConfig):name bug_managementdef ready(self):# signals are imported, so that they are defined and can be usedimport bug_management.signal single.py from django.shortcuts import render# Create your views here.from django.db.models import signals from django.dispatch import receiverfrom bug_management.models import Bug_Detail from .models import Bug_Detail#保存后 ,信号机制触发 将jiraid 更改为正确id receiver(signals.post_save, senderBug_Detail) def welcome_student(instance, created, **kwargs):print(保存了新bug)print(是否新创建了返回true和flase,created)print(instance)# 保存bug信息后 上传jira 返回 jiraid 替换,instance.jiraid 123
http://www.sadfv.cn/news/297327/

相关文章:

  • 山东济宁省建设厅官方网站中小企业公共服务平台网站建设
  • 朋友 合同 网站制作做网站需要审批不
  • 大连网站建设怎么做莆田的外贸网站
  • 如何改网站的内容工艺品网站模版
  • 网站建设项目中标通知网络推广常见的方法
  • 与网站建设有关的招标文件怎么查网站有没有做301
  • 旅游网站论文做一个网站APP价格
  • 表格上传网站中国做外贸的网站有哪些内容
  • 建设部网站黑臭水体公布免费免费建站
  • 临沂网站制作哪家好老域名新网站
  • 重庆企业网站建设报价怎么查看网站打开速度
  • 淄川响应式网站建设唐山建站公司模板
  • 专业的网站制作设计深圳电商网站制作
  • 做商城网站数据库分类该有哪些wordpress大前端
  • 做网站1200外国做水吧设计的网站
  • 网站建设侵权肇庆市建设局网站
  • 温州免费做网站天津网约车
  • 浙江建设干部学校网站首页国内python 做的网站
  • 网站快速排名工具龙岗做网站建设
  • 学校建设网站的背景机关门户网站 建设 方案
  • 安平有做网站推广的吗一个企业网站文章多少适合
  • 常州钟楼建设局网站中国建筑装饰装修官网
  • 学做网站的网站如何制作网站板块
  • 自己做网站难么python开发订阅号
  • 做面料那几个网站做淘宝网站多少钱
  • 电子商务网站建设与管理 教案wordpress 流程审批
  • 杭州网站制作建设网站域名一年大概多少
  • 企业网站建设项目实践报告正安县网站seo优化排名
  • 吉林省公司注册网站保定专业做网站公司
  • 扬州网站建设价格大连企业自助建站