一个 django 的路由小工具

2019-09-18 23:19:03 +08:00
 sazima

可以用装饰器来定义路由.


@request_mapping(value="/user")
class UserView(View):

    @request_mapping(value="/get_info/")
    def get_user_info_by_token(self, request, *args, **kwargs):
        return HttpResponse("ok")

    @request_mapping(value="/get_list/<int:year>/")
    def some_others(self, request, year, *args, **kwargs):
        return HttpResponse("ok")
        
    @request_mapping(value="/login/", method="post")
    def login(self, request, *args, **kwargs):
        return HttpResponse("ok")

        

https://github.com/sazima/django-request-mapping

因为感觉 spring 的路由很好读, 所以仿照写了个, 目前项目在用, 改了几次 bug, 还不错.

2702 次点击
所在节点    Django
6 条回复
freakxx
2019-09-19 00:34:35 +08:00
感觉可以试下这种方式

做一个 register decorator,然后可以指定 urlpatterns, 然后按照 path 的写法,在修饰器实现 path 注册。

然后类内部函数还是走 action 那套,或者同样实现的功能。

感觉整体会更漂亮一些。
sazima
2019-09-19 07:06:01 +08:00
@freakxx 可以这么用的, 我晚上抽空写到 readme 里
iConnect
2019-09-19 08:29:54 +08:00
flask 就是这么用的
Hopetree
2019-09-19 09:55:23 +08:00
可以但没必要。这个工具对于 django 没啥用,如果 django 需要这样写的话,早就参考 flask 的蓝图了,而实际上根本不需要,django 的视图+路由已经很清晰方便了
inorilzy
2019-09-19 10:59:07 +08:00
对,flask 就是这么用的。
sazima
2019-09-19 20:26:45 +08:00
@Hopetree
@iConnect
@inorilzy

谢谢回复, 目前的类视图写一套增删改查就要另起一个.
如果想把类似的功能都聚合到一起, 或者是平常习惯写 service 层的可以试下.

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

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

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

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

© 2021 V2EX