有事没事领个红包

django1.8中如何显示图片,应用css样式,javascript事件

在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 %}

下面是实验效果

 

posted @ 2016-05-19 19:30  crazyCodeLove  阅读(485)  评论(0编辑  收藏  举报