现在的位置: 首页 > 综合 > 正文

Django 1.5.4 专题四 Template 提高

2013年06月07日 ⁄ 综合 ⁄ 共 2406字 ⁄ 字号 评论关闭
staticfiles:这是一个静态资源管理的app,django.contrib.staticfiles。老的版本中,静态资源管理一直是一个问题,部分app发布的时候需要带上静态资源,在部署的时候必须将每个app存在的static静态资源复制到同一个static目录。引入staticfiles之后,执行命令:python manage.py collectstatic 就可以方便的将所用到的app中的静态资源复制到同一目录。
staticfiles的主要相关配置与分析

    STATIC_ROOT:运行上边提到的命令:python manage.py collectstatic 之后静态文件将要复制到的目录,这个目录只有在运行collectstatic时候才会用到,不能想当然的以为这个目录和MEDIA_ROOT的作用是相同的,否则在开发环境的时候可能一直无法找到静态文件。
    STATIC_URL:设置的static file的起始url,这个只是在template里边引用到,这个参数和MEDIA_URL的含义相同,
    STATICFILES_DIRS:和TEMPLATE_DIRS的含义差不多,就是除了各个app的static目录以外还需要管理的静态文件设置,比如项目的公共文件差不多。

各个app目录下的静态文件static/django会自动找到,这个点和app下的templates目录下差不多
在urls.py中加入静态文件处理的代码

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
# This will work if DEBUG is True
urlpatterns += staticfiles_urlpatterns()

一.修改settings.py

也可以使用

二.修改articles/templates/articles.html的内容如下

{% extends "base.html" %}

{% block content %}

<h2>Language is :{{ language }}</h2>

<h2>Session Language is : {{ session_language }}</h2>

{% if articles.count > 0 %}

{% for article in articles %}
<div>
    <h2><a href="/articles/get/{{ article.id }}/">{{ article.title }}</a></h2>
    <p> {{ article.body|lower|truncatewords:"10" }}</p>
</div>
{% endfor %}
{% else %}

<p>None to show!</p>

{% endif %}

{% endblock %}

三.修改articles/templates/article.html的内容如下

{% extends "base.html" %}

{% block sidebar %}
<ul>
    <li><a href="/articles/all">Articles</a></li>
</ul>
{% endblock %}

{% block content %}
    <h1> {{ article.title }} </h1>
    <p> {{ article.body }} </p>
{% endblock %}

四.修改django_test/templates/base.html的内容如下

{% load static %}
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <title> {% block title %} My Base Template {% endblock %} </title>
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" href="{% static 'assets/css/default.css' %}">
</head>
<body>
    <div id="page">
        <div id="sidebar">
            {% block sidebar %}
            <ul>
                <li><a href="/articles/all">Articles</a></li>
                <li><a href="/admin/">Admin</a></li>
            </ul>
            {% endblock %}
        </div>
        <div id="content">
            {% block content %} This is the content area {% endblock %}
            <img src="{% static 'assets/image/python-logo.png' %}" width="200" />
        </div>
    </div>
</body>
</html>

五.创建django_test/static/css文件夹和django_test/static/images文件夹

django_test/static/css/default.css 的内容如下

body{
    text-align:center;
}
#page{
    width: 960px;
    text-align:left;
    margin:10px auto 20px auto;
    background-color: #0c0c0c;
}
#sidebar{
    float: left;
    width: 200px;
    border: 1px solid #000;
}
#content{
    float: left;
    width: 600px;
    border:1px solid #f00;
    padding: 10px;
}

图片可放在django_test/static/images/

如python-logo.png

六.修改STATIFILES_DIRS内容如下

python manage.py collectstatic命令,这将从Django资源包中复制必须的静态文件到STATIC_ROOT指示的static文件夹中

抱歉!评论已关闭.