Python 对特定请求使用请求\启动信号

Python 对特定请求使用请求\启动信号,python,django,django-signals,Python,Django,Django Signals,是否可以将请求\u start信号限制为针对特定请求运行?我在网上浏览过,似乎只发现每个请求都会被触发。您可以根据环境中的信息进行筛选。这与用于创建请求对象的信息相同。但是,信号本身在创建请求之前就已发送 def callback(sender, environ, **kwargs): if environ['PATH_INFO'] == '/your/url': print('Your code here') request_started.connect(call

是否可以将
请求\u start
信号限制为针对特定请求运行?我在网上浏览过,似乎只发现每个请求都会被触发。

您可以根据
环境中的信息进行筛选。这与用于创建请求对象的信息相同。但是,信号本身在创建请求之前就已发送

def callback(sender, environ, **kwargs):
    if environ['PATH_INFO'] == '/your/url':
        print('Your code here')


request_started.connect(callback)

不,您不能仅为特定请求触发请求启动,但您可以为其他请求“提前退出”信号处理程序

您可以使用
PATH\u INFO
变量并执行“标准Django请求处理工作”,以进行路由解析,并获取有关请求中执行的应用程序、视图等的更多信息

这里有一个工作示例(当然是针对我的测试项目env&url)

它只在url路由模式上执行,我可以在处理程序中执行我想要的任何操作

web_1            | {'_func_path': 'reversion.admin.history_view',
web_1            |  'app_name': 'admin',
web_1            |  'app_names': ['admin'],
web_1            |  'args': (),
web_1            |  'func': <function VersionAdmin.history_view at 0x7f522292b9d0>,
web_1            |  'kwargs': {'object_id': '1586'},
web_1            |  'namespace': 'admin',
web_1            |  'namespaces': ['admin'],
web_1            |  'route': 'admin/stores/storecategory/<path:object_id>/history/',
web_1            |  'url_name': 'stores_storecategory_history',
web_1            |  'view_name': 'admin:stores_storecategory_history'}
web|1{“函数路径”:“reversion.admin.history\u视图”,
web_1 |“应用程序名称”:“管理员”,
web_1 |“应用程序名称”:[“管理员],
web_1 |“args”:(),
web_1 |“func”:,
web_1 |'kwargs':{'object_id':'1586'},
web_1 |“名称空间”:“管理”,
web_1 |“名称空间”:[“管理”],
web_1 |“路由”:“admin/stores/storecategory//history/”,
web_1 |“url_name”:“stores_storecategory_history”,
web_1 |“查看_名称”:“管理员:商店_商店类别_历史记录”}

简短的回答,不是很清楚你在问什么,或者你为什么要这样做。也许如果你多解释一下你的用例,有人会提供一个可行的替代方案。
web_1            | {'_func_path': 'reversion.admin.history_view',
web_1            |  'app_name': 'admin',
web_1            |  'app_names': ['admin'],
web_1            |  'args': (),
web_1            |  'func': <function VersionAdmin.history_view at 0x7f522292b9d0>,
web_1            |  'kwargs': {'object_id': '1586'},
web_1            |  'namespace': 'admin',
web_1            |  'namespaces': ['admin'],
web_1            |  'route': 'admin/stores/storecategory/<path:object_id>/history/',
web_1            |  'url_name': 'stores_storecategory_history',
web_1            |  'view_name': 'admin:stores_storecategory_history'}