django.url.path中name参数的功能是什么?
在URL.py文件中创建路径时,通常会执行以下操作:django.url.path中name参数的功能是什么?,django,url,Django,Url,在URL.py文件中创建路径时,通常会执行以下操作: urlpatterns = [ path('foo/',views.FooView,name='bar'), ] 我是Django的初学者,但我还没有看到path函数中name参数的函数。这个参数是用来做什么的,在Django支持的网站中如何有效地使用它?简而言之,此参数的作用是什么?为什么在创建路径时包含此参数很重要?谢谢 有时您希望命名视图,以便可以通过名称而不是url来引用它们。这样,如果应用程序中的url发生更改,您只需在一
urlpatterns = [
path('foo/',views.FooView,name='bar'),
]
我是Django的初学者,但我还没有看到path函数中name参数的函数。这个参数是用来做什么的,在Django支持的网站中如何有效地使用它?简而言之,此参数的作用是什么?为什么在创建路径时包含此参数很重要?谢谢 有时您希望命名视图,以便可以通过名称而不是url来引用它们。这样,如果应用程序中的url发生更改,您只需在一个位置更新代码(在
urls.py
模块中)。使用名称而不是硬编码url的现有代码不需要更新
例如,实用程序函数接受此名称并返回url:
from django.urls import reverse
reverse('bar')
如果不使用该名称,移动路由会很麻烦-您需要在所有模板和代码中查找并更新URL。想象一下,您需要编写一个URL来引用您的
FooView
,然后您可以这样编写它
<a href="/foo/">link</a>
Django将进行计算,并用正确的URL替换它。这不仅让我们省去了一件头疼的事,而且还保证了URL是正确的(当然名称本身是正确的)。因此,如果它呈现HTML输出,我们不必担心,我们可能在其中一个url中编写了一个打字错误,因为{%url..%}
标记如果找不到名称,或者如果参数不匹配,将引发错误
例如,当我们想重定向到一个页面时,我们也可以这样做。如果我们有一个重定向到bar
的特定视图,它看起来像:
def redirect_view(request):
return redirect('bar')
<a href="{% url 'bar' pk=2 %}">link</a>
def重定向_视图(请求):
返回重定向('bar')
再一次,我们完成了。如果以后URL发生更改,或者有人想要实现翻译后的URL(例如,您可以运行英语的服务器,运行俄语的服务器),那么这些URL将具有正确的翻译
如果URL包含参数,例如:
urlpatterns = [
path('foo/<int:pk>/edit',views.FooView,name='bar'),
]
urlpatterns=[
路径('foo//edit',views.FooView,name='bar'),
]
我们也可以使用这个参数。在模板中,它看起来像:
def redirect_view(request):
return redirect('bar')
<a href="{% url 'bar' pk=2 %}">link</a>
或者在视图中:
def redirect_view(request):
return redirect('bar', pk=2)
def重定向_视图(请求):
返回重定向('bar',pk=2)
这个参数如何适应URL,不是我们的问题。Django会自己发现这一点。作为初学者,上述答案并不适合我。也许我可以用更通俗的语言来解释 在url文件中添加url路径,并定义相应的视图函数来处理该路径后,如果我们希望通过其他地方的视图或html页面的模板文件访问相同的url,则可以使用代码中的名称和命名空间来访问它,就像变量名一样。这很有帮助,因为定义另一个url路径和/或使用直接链接会使代码更难维护 例如:
x=5
xi=x+1
xd=x-1
xf=x
比下面的更好,因为如果你想在某一天将x
更改为其他内容,只需一次更改即可
x=5
xi=6
xd=4
xf=5
至于如何使用它,您可以使用上述答案或阅读。参考此,当您在模板中执行
{%url'条'%}
,或在视图中执行返回重定向('bar')
时…非常感谢,(医生先生?)Onsem!我想知道为什么有人想把它包括进去。因此,基本上,它是一种可以用来代替硬编码url的变量?是的,尽管它更好,因为您可以实现可翻译url,或带有参数的url,在这种情况下url不再是静态的,因此标识符将更好地解决此任务。非常有用,谢谢。因此,基本上,它是一种可以用来代替硬编码url的变量?是的,正是这样。你能举一个没有命名视图的使用reverse
的例子吗?如何在模板中动态定位条的主键?当您使用类似{%url'bar'pk=2%}
的逻辑表达式时,访问主键的语法是什么。我试着使用{%url'bar'pk={{.pk}}%}
但是没有用。最后我找到了方法。正确的语法是{%url'bar'pk=object.id%}。这在文档中并不明显。我认为正确的问题应该是“如何访问标记中的对象属性”。这在基于Django后端的Flatter应用程序中有用吗?还是只对网页有用?@DagothAsh:它还可以用于/查找以计算下一条路径,或在序列化程序中计算端点,在该端点处获取相关对象,例如。