Django url_for 等效项

Sch*_*ton 4 python django

我正在尝试找到一个与 Flask 的 url_for 等效的 django 方法。

我不是在寻找 jinja 的等价物(如此所示)——我说的是房子的 python 一侧

在我的 Flask 应用程序中,我发送一个 HTML 字符串,如下所示:

my_picture = '<img src="{}">'.format(url_for('static', filename=r'images/myPic.jpg'))
Run Code Online (Sandbox Code Playgroud)

我知道我可以在 html 中执行此操作,<img src={{ my_picture }}>但这不是我的目标。

我一直在做的是

from my_project.settings import STATIC_URL
my_picture = '<img src="{}">'.format(os.path.join('static', 'images/myPic.jpg'))
Run Code Online (Sandbox Code Playgroud)

但必须有更好的方法

谢谢!

Dom*_*ton 6

这取决于您要寻找什么。

静态文件

如果你想获取静态文件的 URL ,你可以使用以下位:

from django.templatetags.static import static

url = static('images/myPic.jpg')
Run Code Online (Sandbox Code Playgroud)

网址配置

如果您想获取 URL 配置中指定 URL 的 URL 路径,可以使用 URLreverse 解析器。假设您的 URL 配置如下所示:

如果您的 URL 配置如下所示:

from example import views

path('my/fancy/example/', views.example, name='my-example-view')
Run Code Online (Sandbox Code Playgroud)

然后你可以通过以下方式获取 URL:

from django.urls import reverse

url = reverse('my-example-view') # will return "my/fancy/example/"
Run Code Online (Sandbox Code Playgroud)