• Django——正则表达式的举例与基本语法


    如果想在URLconf中加入URL和view,只需增加映射URL模式和view功能的Python tuple即可. 这里演示如何添加view中hello功能.

    from django.conf.urls.defaults import * 
    from mysite.views import hello 
     urlpatterns = patterns('',  ('^hello/$', hello), )
     

    Django在检查URL模式前,移除每一个申请的URL开头的斜杠(/)。 这意味着我们为/hello/写URL模式不用包含斜杠(/)。(刚开始,这样可能看起来不直观,但这样的要求简化了许多工作,如URL模式内嵌,我们将在第八章谈及。)

    模式包含了一个尖号(^)和一个美元符号($)。这些都是正则表达式符号,并且有特定的含义: 上箭头要求表达式对字符串的头部进行匹配,美元符号则要求表达式对字符串的尾部进行匹配。

    最好还是用范例来说明一下这个概念。 如果我们用尾部不是$的模式’^hello/’,那么任何以/hello/开头的URL将会匹配,例如:/hello/foo 和/hello/bar,而不仅仅是/hello/。类似地,如果我们忽略了尖号(^),即’hello/$’,那么任何以hello/结尾的URL将会匹配,例如:/foo/bar/hello/。如果我们简单使用hello/,即没有^开头和$结尾,那么任何包含hello/的URL将会匹配,如:/foo/hello/bar。因此,我们使用这两个符号以确保只有/hello/匹配,不多也不少。

    你大多数的URL模式会以^开始、以$结束,但是拥有复杂匹配的灵活性会更好。

    你可能会问:如果有人申请访问/hello(尾部没有斜杠/)会怎样。 因为我们的URL模式要求尾部有一个斜杠(/),那个申请URL将不匹配。 然而,默认地,任何不匹配或尾部没有斜杠(/)的申请URL,将被重定向至尾部包含斜杠的相同字眼的URL。 (这是受配置文件setting中APPEND_SLASH项控制的,参见附件D。)

    如果你是喜欢所有URL都以’/’结尾的人(Django开发者的偏爱),那么你只需要在每个URL后添加斜杠,并且设置”APPEND_SLASH”为”True”. 如果不喜欢URL以斜杠结尾或者根据每个URL来决定,那么需要设置”APPEND_SLASH”为”False”,并且根据你自己的意愿来添加结尾斜杠/在URL模式后.

    ————————————————————————————分割线——————————————————————————————————

    正则表达式 (或 regexes ) 是通用的文本模式匹配的方法。 Django URLconfs 允许你 使用任意的正则表达式来做强有力的URL映射,不过通常你实际上可能只需要使用很少的一 部分功能。 这里是一些基本的语法。

    符号匹配
    . (dot) 任意单一字符
    d 任意一位数字
    [A-Z] A 到 Z中任意一个字符(大写)
    [a-z] a 到 z中任意一个字符(小写)
    [A-Za-z] a 到 z中任意一个字符(不区分大小写)
    + 匹配一个或更多 (例如, d+ 匹配一个或 多个数字字符)
    [^/]+ 一个或多个不为‘/’的字符
    * 零个或一个之前的表达式(例如:d? 匹配零个或一个数字)
    * 匹配0个或更多 (例如, d* 匹配0个 或更多数字字符)
    {1,3} 介于一个和三个(包含)之前的表达式(例如,d{1,3}匹配一个或两个或三个数字)

    有关正则表达式的更多内容,请访问 http://www.djangoproject.com/r/python/re-module/.

  • 相关阅读:
    苹果向Intel迁移的过程
    苹果向Intel迁移的过程
    UNIX发展简史
    UNIX发展简史
    不折腾的Windows+MAC双平台ADT-Bundle版本总结
    不折腾的Windows+MAC双平台ADT-Bundle版本总结
    MDICT的100G的辞典资源
    MDICT的100G的辞典资源
    android开发工具中的版本不一致问题的剖析
    android开发工具中的版本不一致问题的剖析
  • 原文地址:https://www.cnblogs.com/Simon-xm/p/3890759.html
Copyright © 2020-2023  润新知