Django模板用法

django模板原理

# 创建template对象,由context对象传递template所需要的值, 有render方法进行模板的呈现

# 写模板,创建 Template 对象,创建 Context , 调用 render() 方法。

# Python 字符串都有 upper() 和 isdigit() 方法,你在模板中调用

# 执行变量
{{ abc }}

# 判断
{% if x > 0 %}
{% else %}
{% endif %}

例:
{% if today_is_weekend %}
    <p>Welcome to the weekend!</p>
{% endif %}
注意: 模板中不能包括 ()
{% if athlete_list or coach_list %}
    There are some athletes or some coaches.
{% endif %}

# 循环
{% for i in items_list %}

例:
{% for athlete in athlete_list reversed %}
    <li>{{ athlete.name }}</li>
{% empty %}
    <p>There are no athletes. Only computer programmers.</p>
{% endfor %}

# forloop的一个用法
# forloop循环的结构控制语法
{% for link in links %}{{ link }}{% if not forloop.last %} | {% endif %}{% endfor %}

# forloop实现结构控制的变量   forloop.parentloop.counter 父计数器   
# forloop.counter 当前计数器   接下来可以采用 if 进行逻辑控制
{% for country in countries %}
    <table>
    {% for city in country.city_list %}
        <tr>
        <td>Country #{{ forloop.parentloop.counter }}</td>
        <td>City #{{ forloop.counter }}</td>
        <td>{{ city }}</td>
        </tr>
    {% endfor %}
    </table>
{% endfor %}

# 比较两个变量的值
{% ifequal section ‘sitenews‘ %}
    <h1>Site News</h1>
{% else %}
    <h1>No News Here</h1>
{% endifequal %}

#注释及多行注释
{# This is a comment #}
{% comment %}
This is a
multi-line comment.
{% endcomment %}

# 过滤器之后管道给lower  ,,, truncatewords
{{ name | lower }}
{{ pub_date | date:"F j, Y" }}

# 模板加载
import os.path

TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__), ‘templates‘).replace(‘\\‘,‘/‘),
)

from django.shortcuts import render_to_response
return render_to_response(‘current_datetime.html‘, {‘current_date‘: now})

# 模板的继承 base.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
    <title>{% block title %}{% endblock %}</title>
</head>
<body>
    <h1>My helpful timestamp site</h1>
    {% block content %}{% endblock %}
    {% block footer %}
    <hr>
    <p>Thanks for visiting my site.</p>
    {% endblock %}
</body>
</html>

{% extends "base.html" %}
{% block title %}The current time{% endblock %}
{% block content %}
<p>It is now {{ current_date }}.</p>
{% endblock %}

Django模板用法

时间: 2024-08-09 02:19:48

Django模板用法的相关文章

用mako增强django模板,用法像jsp

用mako增强django模板 django默认的模板功能还可以,但是不能直接用python的语法,mako解决了这个痛点, 使得django的模板变得像jsp一样,可以直接使用python的语法做一些事情. mako django-mako demo mako基本用法 mako的模板需要这样子搞 直接的类似python string format的样子 from mako.template import Template mytemplate = Template("hello, ${name

Django项目实践2 - Django模板(常用语法规则)

http://blog.csdn.net/pipisorry/article/details/45727309 模板中常用的语法规则 {最新版本的Django语法可能有改变,不支持的操作可能支持了.[HTML教程 - 基本元素/标签及属性]} Django 模板标签 if/else 标签 1. 基本语法格式如下: {% if condition %} ... display {% endif %} 或者: {% if condition1 %} ... display 1 {% elif con

Django模板系统学习整理

block extends include三者的差别跟用法 一.定义基础模板,在html内容中定义多个block块,block由子模板引用同名block块,来决定是否替换这些部分 {% block title %}一些内容,这里可不填{% endblock %} {% block content %}一些内容,这里可不填{% endblock %} {% block footer %}一些内容,这里可不填{% endblock %} 这里 title content footer 不是变量,名字

Django模板系统(非常详细)(后台数据如何展示在前台)

前面的章节我们看到如何在视图中返回HTML,但是HTML是硬编码在Python代码中的这会导致几个问题:1,显然,任何页面的改动会牵扯到Python代码的改动网站的设计改动会比Python代码改动更频繁,所以如果我们将两者分离开会更方便2,其次,写后台Python代码与设计HTML是不同的工作,更专业的Web开发应该将两者分开页面设计者和HTML/CSS程序员不应该编辑Python代码,他们应该与HTML打交道3,程序员写Python代码同时页面设计者写HTML模板会更高效,而不是一个人等待另一

Django模板系统详解

你可能已经注意到我们在例子视图中返回文本的方式有点特别.也就是说,HTML被硬性地直接写入 Python代码之中. 这种处理会导致一些问题: § 对页面设计的进行任何改变都必须对 Python代码进行相应的修改.站点设计的修改往往比底层Python代码的修改要频繁得多,因此如果可以在不进行 Python代码修改的情况下变更设计,那将会方便得多. § Python代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给不同的人员(甚至不同部门)来完成.设计人员和 HTML

Django项目实践2 - Django模板

http://blog.csdn.net/pipisorry/article/details/45061511 上篇:Django项目实践1 - 创建Django项目 Django模板 {视图和模板对逻辑和显示进行了分隔} 上面是使用 django.http.HttpResponse() 来输出"Hello World!".该方式将数据与视图混合在一起,不符合Django的MVC思想.或者HTML被直接硬编码在 Python 代码之中. html = "<html>

python django 模板

1 用两个大括号括起来的文字{{person_name}} 称为变量 2 被 大括号和面分号包围的文件({% if ordered_warranty %})是模板标签 3 过滤器是用管道符(|) 和Unix管道符一样 4 一旦你创建一个 Template 对象,你可以用 context 来传递数据给它. 一个context是一系列变量和它们值的集合.模板使用它来赋值模板变量标签和 执行块标签. 5 变量名必须由英文字符开始 (A-Z或a-z)并可以包含数字字符.下划线和小数点. (小数点在这里有

Django模板常用语法规则

Django 模板标签 if/else 标签 for 标签 ifequal/ifnotequal 标签 注释标签 过滤器 include 标签 URL标签 模板继承   if/else 标签1. 基本语法格式如下:{% if condition %} ... display{% endif %}或者: {% if condition1 %} ... display 1{% elif condiiton2 %} ... display 2{% else %} ... display 3{% end

Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)

阅读目录(Content) 模板语法之变量 模板之过滤器 default length filesizeformat date slice truncatechars safe 模板之标签 自定义标签和过滤器 模板继承 (extend) 模板语法之include 前言:当我们想在页面上给客户端返回一个当前时间,一些初学者可能会很自然的想到用占位符,字符串拼接来达到我们想要的效果,但是这样做会有一个问题,HTML被直接硬编码在 Python代码之中. 1 2 3 4 def current_dat