ban*_*ity 3 django django-urls
我有两种不同的对象,我想在同一个URL下生活.一组对象需要传递给视图函数'foo',另一组需要传递给'bar'.
我目前正在使用大量的硬编码网址,如此...
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'),
)
Run Code Online (Sandbox Code Playgroud)
是否可以定义每种类型的URL列表,如...
foo_urls = ['a', 'b', 'c'] #...
bar_urls = ['x', 'y', 'z'] #...
Run Code Online (Sandbox Code Playgroud)
...然后根据这些列表检查传入的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')
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
903 次 |
| 最近记录: |