Django框架中处理URLconf中特定的URL的方法

 更新时间:2015年07月20日 09:32:18   投稿:goldensun  
这篇文章主要介绍了Django框架中处理URLconf中特定的URL的方法,Django是丰富多彩的Python框架中最具人气的一个,需要的朋友可以参考下

有时你有一个模式来处理在你的URLconf中的一系列URL,但是有时候需要特别处理其中的某个URL。 在这种情况下,要使用将URLconf中把特殊情况放在首位的线性处理方式 。

比方说,你可以考虑通过下面这个URLpattern所描述的方式来向Django的管理站点添加一个目标页面

urlpatterns = patterns('',
  # ...
  ('^([^/]+)/([^/]+)/add/$', views.add_stage),
  # ...
)

这将匹配像 /myblog/entries/add/ 和 /auth/groups/add/ 这样的URL 。然而,对于用户对象的添加页面( /auth/user/add/ )是个特殊情况,因为它不会显示所有的表单域,它显示两个密码域等等。 我们 可以 在视图中特别指出以解决这种情况:

def add_stage(request, app_label, model_name):
  if app_label == 'auth' and model_name == 'user':
    # do special-case code
  else:
    # do normal code

不过,就如我们多次在这章提到的,这样做并不优雅: 因为它把URL逻辑放在了视图中。 更优雅的解决方法是,我们要利用URLconf从顶向下的解析顺序这个特点:

urlpatterns = patterns('',
  # ...
  ('^auth/user/add/$', views.user_add_stage),
  ('^([^/]+)/([^/]+)/add/$', views.add_stage),
  # ...
)

在这种情况下,象 /auth/user/add/ 的请求将会被 user_add_stage 视图处理。 尽管URL也匹配第二种模式,它会先匹配上面的模式。 (这是短路逻辑。)

相关文章

  • Python环境的安装以及PyCharm编辑器配置教程详解

    Python环境的安装以及PyCharm编辑器配置教程详解

    优质的教程可以让我们少走很多弯路,这一点毋庸置疑。这篇文章主要为大家介绍了纯净Python环境的安装以及PyCharm编辑器的配置,需要的可以参考一下
    2023-04-04
  • python中eval与int的区别浅析

    python中eval与int的区别浅析

    这篇文章主要给大家介绍了关于python中eval与int的区别,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • 详解Python中的文件操作

    详解Python中的文件操作

    这篇文章主要介绍了Python中文件操作的相关资料,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2021-01-01
  • python使用redis实现消息队列(异步)的实现完整例程

    python使用redis实现消息队列(异步)的实现完整例程

    本文主要介绍了python使用redis实现消息队列(异步)的实现完整例程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 安装Python的web.py框架并从hello world开始编程

    安装Python的web.py框架并从hello world开始编程

    这篇文章主要介绍了安装Python的web.py框架并从hello world开始编程,web.py的作者年轻的Aaron Swartz已经离世,缅怀大神,需要的朋友可以参考下
    2015-04-04
  • Pygame改编飞机大战制作兔子接月饼游戏

    Pygame改编飞机大战制作兔子接月饼游戏

    一年中秋又快到了,今年加入了Python的学习行列,得益于Python的开发效率和易读性,网上写文章的次数多了起来,既然是中秋节那肯定要搞个应景的游戏才行
    2022-09-09
  • python的变量和运算符你都知道多少

    python的变量和运算符你都知道多少

    这篇文章主要为大家详细介绍了python的变量和运算符,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • django的ORM操作 增加和查询

    django的ORM操作 增加和查询

    这篇文章主要介绍了django的ORM操作 增加和查询,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python实现ID3决策树算法

    python实现ID3决策树算法

    这篇文章主要为大家详细介绍了python实现ID3决策树算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • 解决Building wheel for wrapt (setup.py) ... error的问题

    解决Building wheel for wrapt (setup.py) ... error的问题

    这篇文章主要介绍了解决Building wheel for wrapt (setup.py) ... error的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12

最新评论