在.j文件中的django中引用静态文件(不在模板中)

时间:2015-02-02 20:31:59

标签: python django static

我已经花了一个小时搜索如何在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}}

依旧......

谢谢!

3 个答案:

答案 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'

Django Docs

答案 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')