我正在编写一个具有直观路由的HTTP请求处理程序。我的目标是能够将decorator应用于一个函数,该函数声明正在使用的HTTP方法以及执行修饰函数时要监听的路径。以下是此实现的示例:
@route_handler("GET", "/personnel")
def retrievePersonnel():
return personnelDB.retrieveAll()
但是,我还希望能够向路径添加变量。例如,/personnel/3
将获取ID为3的人员。我要做的是为传递到route_处理程序的路径提供一种“变量掩码”。一个新的例子是:
decorator的目的是将路径文本(例如,/personnel/3
)与路径“mask”(/personnel/{ID}
)进行比较,并将3传递到修饰函数中。我假设解决方案是比较两个字符串,保留差异,并将文本中的差异放入一个以掩码中的差异(减去大括号)命名的变量中。但是我还要检查文本是否与掩码减去{}
变量捕捉器匹配。。。在
stringMask("/personnel/{ID}", "/personnel/5") -> True, {"ID": 5}
stringMask("/personnel/{ID}", "/flowers/5") -> False, {}
stringMask("/personnel/{ID}", "/personnel") -> False, {}
既然我猜这并不是一个简单的解决方案,我就把我的解决方案贴出来。我本来希望我能在几行诗里做点什么,但是哦,好吧‘’
掩码只是一个字符串,类似于下面的其中一个:
^{pr2}$相关问题 更多 >
编程相关推荐