当后期要修改url设置规则时,在不使用name字段的时候,不但要修改urls.py文件中的url路由,还要讲html文件中所有的相同路径进行修改,在实际应用中将会有大量的url路由,这样修改下来将会十分的麻烦。
但是,如果使用name字段只需要在urls.py 文件中将path()中的url路由修改了就行了,html文件中的则不需要修改,因为这种方式下是通过name字段来映射url的,故不用再去修改html文件了。而一般情况下name的值又是不会变化的,故后期修改起来将会十分的方便。
name参数的作用:
主要是通过name的值,来查找url地址,可以理解为反射作用。在html模板中使用name来反射url优势就是后期url规则发生改变之后,只需调整urls.py即可,所有的模板文件都不需要修改。
例如:
在urls.py文件中如下配置:
urlpatterns = [
path('admin/', admin.site.urls),
path('sum/', views.add, name="add"),
path('get_url/', views.get_url, name="test"),
path('index/', views.index),
]
在views.py文件中写好如下的对应视图函数:
def add(request):
return HttpResponse('你访问了第一个url路由')
def get_url(request):
# reverse()这个函数就是根据url路由的name参数,来反向获取url地址的方法
# 所以,url路由的name参数不仅仅可以在模板中使用{% url 'add' %},也可以在view.py中使用
result = reverse('add1', args=(123, 456))
return HttpResponse(result)
上述使用name字段的url路由设置方法在html文件中的应用方式如下:
{# url是固定写法,表示当前要加载的是url地址。'add'表示url路由对应的name参数值。 #}
{# 要加载name="add"的这个url地址。 #}
<a href="{% url 'add' %}">第一个url路由</a>
{# 通过name的值"add1",反向获取带有参数的url地址 #}
<a href="{% url 'add1' 10 25 %}">计算</a>