首页 > 解决方案 > 动态引用变量

问题描述

上下文:我正在创建一个接受位置参数的 Django 管理命令。这个参数是一个位置。我的目标是使用位置值来引用相应的变量。

我有一个名为Boston_webhook. 这是一个简单的字符串,其中包含一个长 URL,它只是一个 MSteams webhook...

我有一个名为的附加全局变量Budapest_webhook,它包含相同的数据类型,而是指与布达佩斯位置相关的 webhook。

在我的脚本中,必须定义一个连接器变量才能将消息发送到正确的位置。

myTeamsMessage = pymsteams.connectorcard()

如果有人输入 python manage.py 报告Boston,我想将其插入连接器参数,但我不确定如何动态引用变量。

当 location == 'Boston' 使用某种连接时,是否可以引用 Boston_webhook ......?

myTeamsMessage = pymsteams.connectorcard(location + _webhook)这样的东西是理想的

我想避免使用条件,因为它不可扩展。我需要能够将位置添加到数据库而无需更改代码......

标签: pythondjango

解决方案


使用字典将 webhook 的名称映射到 webhook 本身 - 像这样

webhooks = {
    "Boston": "boston url",
    "Budapest": "budapest url"
}

现在您可以像这样引用您的 webhook

# this will give you Boston webhook
myTeamsMessage = pymsteams.connectorcard(location + webhooks["Boston"])

这是最简单的方法。我认为最好只为此创建新类并使用方法将该类转换为字符串,但如果您不需要更复杂的东西,这就足够了


推荐阅读