在Django中,您可以自动将URL映射到查看方法吗?

时间:2011-03-24 06:34:25

标签: django django-urls

给出这样的观点:

# my_app/views.py
def index(request):
    ...
def list(request):
    ...
def about(request):
    ...

而不是在视图中为每个方法明确声明urls.py中的网址:

# urls.py
url(r'^index$', 'my_app.views.index'),
url(r'^list$', 'my_app.views.list'),
url(r'^about$', 'my_app.views.about'),
...

是否可以只为URL调度程序提供视图(my_apps.views)并让它处理所有视图的方法?

1 个答案:

答案 0 :(得分:1)

我想你可以有一个捕获url regexp的视图,

r'^(?P<viewtype>index|list|about)/$', 'myview'

带有处理捕获参数的视图。

def myview(request, viewtype):
    if viewtype == 'index':
          return http.HttpResponse("I'm the index view")
    elif viewtype == 'list':
          return http.HttpResponse("I'm the list view')

但为了清晰起见,我建议保持视图逻辑分离。使用3个if / then语句跟踪3个不同视图的特定功能要容易得多。

相关问题