📜  获取绝对 url django - Python (1)

📅  最后修改于: 2023-12-03 15:41:29.977000             🧑  作者: Mango

获取绝对 URL Django - Python

在 Django 中,您可以使用 reverse() 函数来获取一个 view 的 URL。这个函数需要一个 view 名称作为参数,然后返回该视图的完整 URL。

例如,如果您有一个名为 my_view 的视图,则可以使用以下代码获取其绝对 URL:

from django.urls import reverse

url = reverse('my_view')

但是,这个方法只适用于您在 urls.py 文件中硬编码了 URL。如果您想使用动态 URL 名称或动态参数构建 URL,则需要使用 reverse() 函数的另一个变体:reverse_lazy()。该函数与 reverse() 类似,但是仅在需要时才执行:

from django.urls import reverse_lazy

url = reverse_lazy('my_view_name', args=[1])

这里的 args 参数是可选的,它传入my_view_name 参数中带有变量的视图中。例如,如果您有一个视图如下:

def my_view(request, my_id):
    # ...
    return HttpResponse('Hello World')

你就可以通过这种方式来获取URL:

from django.urls import reverse_lazy

url = reverse_lazy('my_view', args=[1])

最后,无论您是使用 reverse() 还是 reverse_lazy() 函数,都可以为其传递任何关键字参数,这些关键字参数会被解释为查询字符串参数。例如:

from django.urls import reverse_lazy

url = reverse_lazy('my_view', args=[1], kwargs={'foo': 'bar'})

这将生成以下 URL:

/my_view/1/?foo=bar

希望本文对您了解 Django 的绝对 URL 有所帮助。