python - Django-url 中的 "name"是什么意思?

标签 python django

<分区>

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

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

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

谢谢!

最佳答案

该名称用于从您的 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 模式即可。

关于python - Django-url 中的 "name"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46729889/

相关文章:

python - 从 Django 管理员调试

python - 使用 itertools.permutation where r > n

Python ctypes.string_at 释放行为

python - scrapy:使用 itemLoader 填充嵌套项目

python - Django 中是否有任何函数可以测试模型的字段实例是否为主键?

python - 在 StreamField 中显示时,如何在模型中渲染页面属性?

python - 如何根据距已知引用轨迹的距离过滤位置数据?

python - os.environ 没有显示一些变量

javascript - django 提供的index.html 无法找到socket.io 服务器

django - Django-Tagging 还在维护吗?