加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 12:25:14 所属栏目:Python 来源:网络整理
导读:我有两种不同的对象,我想在同一个URL下生活.一组对象需要传递给视图函数’foo’,另一组需要传递给’bar’. 我目前正在使用大量的硬编码网址,如此… urlpatterns = patterns('project.views',(r'^a/$','foo'),(r'^b/$',(r'^c/$',#...and so on until... (r'^x
我有两种不同的对象,我想在同一个URL下生活.一组对象需要传递给视图函数’foo’,另一组需要传递给’bar’.

我目前正在使用大量的硬编码网址,如此…

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

是否可以定义每种类型的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','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')
        )

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读