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

2020-08-26 13:21:00 +08:00
 chenqh

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

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

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

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

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

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

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

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

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

© 2021 V2EX