gpt4 book ai didi

django - 整理复杂的 URL 调度程序

转载 作者:行者123 更新时间:2023-12-01 15:23:38 25 4
gpt4 key购买 nike

我有两种不同类型的对象,我希望它们位于同一个 URL 下。一组对象需要传递给 View 函数“foo”,另一组对象需要传递给“bar”。

我目前正在使用一长串硬编码的 URL 来做这件事,就像这样......

urlpatterns = patterns('project.views',
(r'^a/$', 'foo'),
(r'^b/$', 'foo'),
(r'^c/$', 'foo'),
#...and so on until...
(r'^x/$', 'bar'),
(r'^y/$', 'bar'),
(r'^z/$', 'bar'),
)

是否可以定义每种类型的 URL 的列表,例如...
foo_urls = ['a', 'b', 'c'] #...
bar_urls = ['x', 'y', 'z'] #...

...然后根据这些列表检查传入的 URL? (如果它在'foo_urls'中,发送到'project.views.foo';如果它在'bar_urls'中,发送到'project.views.bar')?

我仅限于保持这种结构以保持与上一个站点的 URL 的兼容性,但是对于简化我的 urls.py 的任何建议,我们将不胜感激。

最佳答案

url 映射通常明确表示,但它们不必如此。如何从您的列表中构建您的 URL 映射?

foo_urls = ['a', 'b', 'c'] #...
bar_urls = ['x', 'y', 'z'] #...

# A first pattern to get urlpatterns started.
urlpatterns = pattern('project.views',
('blah', 'blah')
)

# Append all the foo urls.
for foo_url in foo_urls:
urlpatterns += patterns('project.views',
('^' + foo_url + '/$', 'foo')
)

# Append all the bar urls.
for bar_url in bar_urls:
urlpatterns += patterns('project.views',
('^' + bar_url + '/$', 'bar')
)

关于django - 整理复杂的 URL 调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1469131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com