是否有在Django中用视图装饰器替换urlpatterns的标准方法?

问题描述 投票:5回答:1

我已经开发了自己的游戏,但是似乎其他人可能首先想到它并做了更好的工作就足够了;)

目标是能够在您的myapp / views.py中编写

router = Router(prefix=r'^myapp/')

@router.route(url=r'my/url/here', name="my-great-view")
def myview(request):
    return render_to_response("mytemplate.html", {})

然后在urls.py中

urlpatterns += myapp.views.router.get_patterns()

并且我还内置了其他一些很酷的装饰器功能(@jsonview用于获取返回的字典并做出json响应,@ use_template用于获取返回的字典并将其作为上下文传递给定义的模板...)

似乎这种方式使所有内容都更具本地化可读性。当查看视图函数时,您不必四处寻找以查找其所属的URL或它的“命名”。

我看到了这个djangosnippet,但是它比我想要的要神奇得多,而且看起来好像并没有被普遍采用。

如果没有人提出一个标准的解决方案,我应该清理我的矿井并提交请求请求以做出贡献吗?

编辑:如果您希望同一视图有多个网址:

@router.route(url="my-first-url", kwargs={'foo':'bar'})
@router.route(url="my-second=url", kwargs={'foo':'baz'})
def my_view(...): ...

<< [And当然,这不必是only的方式-普通的urlpatterns方式在这方面有一些好处,但是这两种方法并不互相排斥。] >

我已经开发了自己的游戏,但是似乎其他人可能首先想到它并且做得更好,这已经足够了;)目标是能够在myapp / views.py中进行编写。 ..
django view decorator url-pattern
1个回答
0
投票
[常规配置,我们有一个主要网站urls.pyurls.py包含名为urlpatterns的变量。]​​>

所以我们可以将一些url_pattern推入其中。

© www.soinside.com 2019 - 2024. All rights reserved.