Django的URL别名

Posted qunxiadexiaoxiangjiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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模板中

以上是关于Django的URL别名的主要内容,如果未能解决你的问题,请参考以下文章

django url别名和反向解析 命名空间

Django的URL别名

如何为 DJANGO 中动态创建的 URL 设置 URL 别名?

如何管理 Django url 别名重定向?

Django的url别名功能的使用

Django框架静态文件配置和URL解析