django1.8中如何显示图片

Posted pclover11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django1.8中如何显示图片相关的知识,希望对你有一定的参考价值。

在django中将图片、javascript、css称为静态文件。如何将这些静态文件显示在django中呢?近期做一个项目,一直困扰着我,后来查找各种资源,终于在官方文档中找到。

官方文档链接

在setting.py文件中进行修改

 1INSTALLED_APPS 中要有 django.contrib.staticfiles 

 

2要设置静态文件查找目录

 STATIC_URL = \'/static/\'

或者:

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

3在模版template中,使用静态文件连接时要么硬编码,例如:“/static/img/myexample.jpg”

注意:静态文件需要放STATICFILES_DIRS声明的文件夹里。比如我的目录结构如下

要么使用static模版标签,例如:

{% load static %}
<img src="{% static "img/myexample.jpg" %}" alt="My image"/>

4存储静态文件在静态文件目录中

要么在每个app目录下,新建一个static文件夹,把静态文件放到其中。例如:在app1包里有static/img/myexample.jpg与之相关的设置就是在setting.py文件中设置

 STATIC_URL = \'/static/\'

要么将所有的静态文件放到一个公共的地方,方便对其管理和共享。例如:在manage.py同级目录下新建一个static文件夹,在这个文件夹下在建一个img文件夹,里面有myexample.jpg文件。在与之相关的设置是

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

django系统会首先在STATICFILES_DIRS中查找所需的静态文件,然后在STATIC_URL中查找,如果有同名的文件,会返回第一个找到的文件。

 

二、我的一个例子:

setting.py文件下

STATIC_URL = \'/static/\'
STATICFILES_DIRS = (
        os.path.join(BASE_DIR,\'static\'),
)

static文件结构如下

在template文件中有如下片段:

{% block content %}
<div>
{% load static %}
<p>
<a href="/app1/index/"><img src="{% static "img/success1.jpg" %}" alt="My image" height="600px" width=auto/></a>
</p>
</div>
{% endblock %}

下面是实验效果

 

以上是关于django1.8中如何显示图片的主要内容,如果未能解决你的问题,请参考以下文章

CardView 不在披萨片段中显示图片

django1.8.2 建站实现分页显示功能

django1.8下js静态资源怎么配置

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Django1.8文档阅读手记