【问题标题】:What does "name" mean in Django-url? [duplicate]Django-url 中的“名称”是什么意思? [复制]
【发布时间】:2018-03-25 14:07:22
【问题描述】:

我想知道,在使用url时(from django.conf.urls import url)name = 'insert-something'是什么意思?例如,在为注册新用户制作url时:

url(r'^register', views.register, name='register')

name='register' 在这里是什么意思?为什么有必要?

谢谢!

【问题讨论】:

  • 您可以将该名称与 reverse LINK 一起使用
  • 你的url地址随时可能改变,所以不用在模板标签中写硬编码url,你可以简单地写:{% url 'register' %}

标签: python django


【解决方案1】:

该名称用于从您的 Django / Python 代码访问该 URL。例如,您在urls.py 中有这个

url(r'^main/', views.main, name='main')

现在每次你想重定向到主页,你可以说

redirect('app.main')

app 是 main 所在的 django-app 的名称。或者您甚至可以将它用于 html 模板中的链接,例如

<a href="{% url 'app.main' %}">Go to main</a>

例如,这会将您链接到www.example.com/main。当然可以

redirect('http://www.example.com/main')

<a href="http://www.example.com/main">Go to main</a>

分别,但例如您想更改域或main/ 路由。如果您的项目中的所有 url 都将被硬编码,那么您将不得不在每个地方进行更改。但是,如果您改用 url name 属性,则只需更改 urls.py 中的 url 模式即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 2010-09-29
    • 2020-10-27
    • 2015-07-15
    相关资源
    最近更新 更多