路由 - 参数作为视图名称

时间:2013-07-17 20:42:12

标签: python django django-urls

是否可以在Django中编写URL路由,其中​​视图名称将是动态的(从URL解析)?

"http://www.example.com/<view>/"  => executes app.views.<view> 

2 个答案:

答案 0 :(得分:0)

您可以使用视图名称作为参数编写停靠在http://www.example.com/的视图,然后在视图函数中从dict name - &gt;中触发适当的处理程序。 custom view,或扫描globals()(丑陋的,您最终会检查输入是否有任何恶意数据,因为它直接来自用户,globals()会返回所有可见全局变量的字典。< / p>

答案 1 :(得分:0)

您可以使用中间/帮助视图。

urls.py:

url(r'^/(?P<view_name>\w+)/$', help_view),

views.py:

def help_view(request, view_name):
    return globals()[view_name]()

或者,不是从globals()调用函数,而是可以使用view_name->view_function映射的字典。

希望有所帮助。