【问题标题】:Django autorouteDjango自动路由
【发布时间】:2010-12-16 00:54:02
【问题描述】:

使用 ASP.NET MVC,我只需向视图添加一个动作,它就会自动运行。 Django 似乎让我在 urls.py 表中写下每条路线 - 有没有办法让它映射,例如“/foo/bar”到foo.views.bar,而我没有明确这么说?

【问题讨论】:

    标签: django model-view-controller django-urls


    【解决方案1】:

    我认为 django 让你编写所有内容的原因是这样的:What's wrong with "magic"?

    其次,您建议的地图使处理视图函数的参数变得困难。最简单的方法是按照惯例强制所有视图只使用GETPOST 参数,否则采用一些标准参数集(例如requesttemplate_name)。

    要实现您想要的这个地图,您可以遍历您的视图模块并生成模式对象。请注意,这是一个非常丑陋的 hack,很大程度上违背了 url 映射器的目的。在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)]))
    

    【讨论】:

    • 嗯,我认为这适合 DRY。我会试试你的技巧。
    猜你喜欢
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    • 2021-09-24
    • 2015-07-02
    • 2011-11-28
    相关资源
    最近更新 更多