Python 有没有什么库可以方便的支持 router 的

2020 年 8 月 26 日
 simple2025

因为要对接上下游,不同的上游有不同的请求参数,处理参数这样
我的想法就是

rule.add("test1", test1func)
rule.add("test2", test2func)

然后 rule.handle(name, *args) 就自动路由到对应的 func 里面去

有没有什么类库可以方便的支持这个的,本来看到了一个 dispatcher, 但是 dispatcher 是根据类型来的

2262 次点击
所在节点    Python
7 条回复
vissssa
2020 年 8 月 26 日
反向代理?
imkuang
2020 年 8 月 26 日
我感觉你这需求跟装饰器有点像
Vegetable
2020 年 8 月 26 日
你代码都快写完了,就是基于字典写一个简单的类就行了
Ricardoo
2020 年 8 月 26 日
参照 functools 中的 singledispatch,写个装饰器把类型改成普通的值就可以了
imn1
2020 年 8 月 26 日
1.一对一,字典
2.多对几,就是参数有分类,bisect,不过要自己处理无序参数变成有序
3.参看#4
4.状态机
5.如果是类,动态继承
abersheeran
2020 年 8 月 26 日
如果 name 的字符串里不存在通配符号,那么直接用 dict 就行了。哈希挺快的。
如果有通配符,可以用 RadixTree,https://github.com/abersheeran/index.py/blob/master/indexpy/routing/tree.py
simple2025
2020 年 8 月 26 日
@imn1 1 对 1

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/701559

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX