Django url_for等效

时间:2019-03-20 12:58:12

标签: python django

我正试图找到一种与Flask的url_for等效的django方法。

我不是在寻找jinja等效项(如here所示),而是在房子的python一侧谈论

在我的烧瓶应用程序中,我发送了如下的HTML字符串:

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

我知道我可以在HTML中以<img src={{ my_picture }}>的身份进行操作,但这不是我的目标。

我一直在做的是

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

但是必须有更好的方法

谢谢!

2 个答案:

答案 0 :(得分:1)

在需要时,我也会在python文件中使用模板标记:

from django.contrib.staticfiles.templatetags.staticfiles import static

url = static('images/myPic.jpg')

答案 1 :(得分:1)

这取决于您要查找的内容。

静态文件

如果要获取static file的URL,可以使用以下位:

from django.templatetags.static import static

url = static('images/myPic.jpg')

URL配置

如果要在URL配置中获取命名URL的URL路径,可以使用reverse URL resolver。假设您的网址配置如下:

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

from example import views

path('my/fancy/example/', views.example, name='my-example-view')

然后您可以使用以下网址获取网址:

from django.urls import reverse

url = reverse('my-example-view') # will return "my/fancy/example/"