Django的URL别名

 

项目的urls.py配置文件

  1.  
    from message.views import getform
  2.  
     
  3.  
    urlpatterns = [
  4.  
    url(r'^admin/', admin.site.urls),
  5.  
    url(r'^form/$',getform)
  6.  
    ]

这个是原来的,html中我们引入的为:

<form action="/form/" method="post" class="smart-green">

上面这种写法是写死的,但是如果我们后期想修改url的话就需要每个html文件都要变更url就比较麻烦,所以我们下面来配置一下url的别名

  1.  
    from message.views import getform
  2.  
     
  3.  
    urlpatterns = [
  4.  
    url(r'^admin/', admin.site.urls),
  5.  
    url(r'^form/$',getform,name='go_form')
  6.  
    ]

我们已经将form的别名写为 go_form,所以Html中我们可以直接用{% url 'go_form' %} 来匹配url,这样的好处就是我们可以任意改正则的 form成为其他名称,django也会帮我们主动转换成为该名称。

<form action="{% url 'go_form' %}" method="post" class="smart-green">

比如:

  1.  
    from message.views import getform
  2.  
     
  3.  
    urlpatterns = [
  4.  
    url(r'^admin/', admin.site.urls),
  5.  
    url(r'^form_go/$',getform,name='go_form')
  6.  
    ]

【url的匹配顺序】

urls的配置中会从上到下来进行匹配,所以如果我们希望是form结尾的话就要记得加入 $ 结束符号,比如我们需要formtest,但是先匹配到了form就会造成冲突,从而直接指向了form的html模板中

上一篇:String..lastIndexOf(".") 返回-1的思考


下一篇:async 和 await 的进阶