使用ASP.NET MVC,我可以向视图添加一个动作,它将自动运行。 Django似乎让我在urls.py表中编写每个路径 - 有没有办法让它映射,例如“/ foo / bar”到foo.views.bar
而没有我明确说出来?
答案 0 :(得分:2)
我认为django让你写一切的原因是这样的:What's wrong with "magic"?
其次,您建议的地图使得处理视图函数的参数变得困难。最简单的方法是按惯例强制执行所有视图仅使用GET
和POST
参数,否则采用一些标准参数集(例如request
,template_name
)。
要实现所需的地图,您可以迭代视图模块并生成模式对象。请注意,这是一个非常丑陋的黑客,并在很大程度上击败了网址映射器的目的。在urls.py
:
from django.conf.urls.defaults import *
import myapp.views
urlpatterns = patterns('myapp.views',
*map(lambda x: url(r'^myapp/%s/$' % x, x, name='myapp_%s' % x),
[k for k,v in myapp.views.__dict__.items() if callable(v)]))