我正试图找到一种与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'))
但是必须有更好的方法
谢谢!
答案 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路径,可以使用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/"