django 4.2 自定义signal的使用方法

环境:win11 python3.9.2 django 4.2.11

背景:执行异步数据存储,想要使用该方法实现(失败了)

时间:20240410

说明:记录一下,避免忘记

1、创建django项目,并实现首页

python 复制代码
# 创建项目
django-admin startproject getfiction .  

# 在目录下新建views.py,并写入如下内容
# TestSignal/views.py

from django.shortcuts import HttpResponse


def index(request):
    return HttpResponse("OK")

# 修改路由
# TestSignal/urls.py

from django.contrib import admin
from django.urls import path
from TestSignal.views import index

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', index)
]

测试:

2、创建信号并实现执行

python 复制代码
# TestSignal/views.py

from django.shortcuts import HttpResponse
from django.dispatch import Signal, receiver

# 创建信号
my_signal = Signal()


@receiver(my_signal)
def test_signal(sender, **kwargs):
    return kwargs['info']


def index(request):
    msg = my_signal.send(sender=None, info="hello world")
    return HttpResponse(str(msg[0][1]))

执行结果

相关推荐
Mr.咕咕1 小时前
Django 搭建数据管理web——商品管理
前端·python·django
pcj_8882 小时前
Django基础用法+Demo演示
python·django
工业互联网专业3 小时前
Python毕业设计选题:基于django+vue的仓库管理系统设计
vue.js·python·django·毕业设计·源码·课程设计
q567315231 天前
通过scrapy和Django登录、爬取和持久化数据
java·开发语言·数据库·scrapy·django
喝旺仔la1 天前
异步提交Django
后端·python·django
计算机学姐1 天前
基于Python的高校成绩分析管理系统
开发语言·vue.js·后端·python·mysql·pycharm·django
Daorigin_com2 天前
如何从数字化迈向智能化的跨越,重塑企业合同管理的未来
搜索引擎·计算机视觉·数据挖掘·vim·信号处理·sklearn·测试覆盖率
计算机学姐2 天前
基于Python的药房管理系统
开发语言·vue.js·后端·python·mysql·pycharm·django
huanglianggu2 天前
pip install django-ckeditor -i https://pypi.doubanio.com/simple/
django·sqlite·pip
聪明的墨菲特i2 天前
Django博客网站上线前准备事项
数据库·python·django