我已经花了一个小时搜索如何在django中引用静态文件,但我只是在模板中找到了如何做到这一点。 在我的项目中,我成功地在模板中引用静态文件,但我不想在模板中执行此操作,我想在我的.py文件中执行此操作。
我认为我必须从某些地方导入静态,我已尝试过这个:
from django.templatetags.static import static
from django.conf.urls.static import static
试图像这样引用它
'<a href=/url> <img src="{{ STATIC_URL }}image.png" ></a>'
我已尝试过所有可能的组合,例如
{% static image.png %}
{{static image.png}}
依旧......
谢谢!
答案 0 :(得分:2)
from django.templatetags.static import static
'<a href=/url> <img src="{0}" ></a>'.format(static("image.png"))
请注意django.templatetags.static
实际上是一个函数。使用模板标记时,模板引擎会调用该函数。
答案 1 :(得分:0)
如果要在磁盘上查找实际文件,可以使用 staticfiles 应用程序的 finders 类:
>>> from django.contrib.staticfiles import finders
>>> finders.find("icons/exclamation.svg")
'C:\\<project folder>\\<project name>\\<app name>\\static\\icons\\exclamation.svg'
答案 2 :(得分:-1)
您可以阅读django配置以获取包含静态文件的URL基础部分的STATIC_URL
:
from django.conf import settings
import urlparse
print '<a href=/url> <img src="%s"></a>' % urlparse.urljoin(settings.STATIC_URL, 'image.png')