在 .py 文件中引用 django 中的静态文件(不在模板中)
Reference static files in django in .py files ( NOT in templates)
我花了一个小时搜索如何在 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}}
等等...
谢谢!
您可以阅读 django 配置以获取 STATIC_URL
其中包含 URL 静态文件的基础部分:
from django.conf import settings
import urlparse
print '<a href=/url> <img src="%s"></a>' % urlparse.urljoin(settings.STATIC_URL, 'image.png')
from django.templatetags.static import static
'<a href=/url> <img src="{0}" ></a>'.format(static("image.png"))
注意django.templatetags.static
实际上是一个函数。当您使用模板标签时,模板引擎会调用该函数。
如果您想在磁盘上找到实际文件,可以使用 staticfiles 应用程序的 finders class :
>>> from django.contrib.staticfiles import finders
>>> finders.find("icons/exclamation.svg")
'C:\<project folder>\<project name>\<app name>\static\icons\exclamation.svg'
我花了一个小时搜索如何在 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}}
等等...
谢谢!
您可以阅读 django 配置以获取 STATIC_URL
其中包含 URL 静态文件的基础部分:
from django.conf import settings
import urlparse
print '<a href=/url> <img src="%s"></a>' % urlparse.urljoin(settings.STATIC_URL, 'image.png')
from django.templatetags.static import static
'<a href=/url> <img src="{0}" ></a>'.format(static("image.png"))
注意django.templatetags.static
实际上是一个函数。当您使用模板标签时,模板引擎会调用该函数。
如果您想在磁盘上找到实际文件,可以使用 staticfiles 应用程序的 finders class :
>>> from django.contrib.staticfiles import finders
>>> finders.find("icons/exclamation.svg")
'C:\<project folder>\<project name>\<app name>\static\icons\exclamation.svg'