Django——模板语法

####模板

模板是web框架中一种方便动态生成HTML的一种后端工具。模板包括有html的静态部分,以及插入动态内容的语法部分。
Django 可以配置一个或多个模板引擎,默认的是DTL,常见的还有 jinja2模板,例如 Flask 使用的就是 jinja2 模板。

####使用模板语法
在web页面中,很多页面都具有公共部分,如果每个页面都写了一堆重复代码,就显得累赘。用模板语法来建立一个基础模板是一个很好的办法。
######模板的继承

# 一个基础的模板 index.html

<html>
<head>
	<meta charset="UTF-8">
	<p>公共部分·公共部分·公共部分·公共部分·公共部分p>
	<title>{% block title %}首页{% endblock %}title>
	<p>公共部分·公共部分·公共部分·公共部分·公共部分p>
head>
<body>
	<p>公共部分·公共部分·公共部分·公共部分·公共部分p>
	<p>公共部分·公共部分·公共部分·公共部分·公共部分p>
	{% block body1 %}
	<span>这是首页的私有部分span>
	{% endblock %}
	<p>公共部分·公共部分·公共部分·公共部分·公共部分p>
	{% block body2 %}
	<span>这是首页的私有部分span>
	{% endblock %}
	<p>公共部分·公共部分·公共部分·公共部分·公共部分p>
body>
html>

现在写一个与首页大部分相同,只有是有部分不一样的页面

{% extends 'index.html' %}
{% block title %}第二页{% endblock %}
{% block body1 %}
<span>这是第二页的私有部分1span>
{% endblock %}
{% block body1 %}
<span>这是第二页的私有部分1span>
{% endblock %}

######文件加载


{% load staticfiles %}


{% static ‘image/1.png’ %}

{% url ‘user:index’ %}

{% url ‘user:index’ 0 %}

# 指定具体图片
<img src="{{MEDIA_URL}}1.png">
# 从数据库中获取的imagefile字段(product表image字段)
<img src="{{product.image.url}}">

#####引用变量
变量是由后端传递的一些动态数据


{{variable}}



{{dict[key]}}

{{list.0}}

{{obj.name}}

{{obj.say()}}

在django模板语法中,如果变量不存在,将使用setting.py中 变量TEMPLATE_STRING_IF_INVALID的值代替

######过滤器的使用


{{variable|filter}}

{{text|escape|linebreaks}}

{{bio|truncatewords:30}}

{{list|join:", "}}
 
add  {{value|add:"2"}} 
addslashes  {{value|addslashes}}  
capfirst    {{value|capfirst}}    
cut         {{value|cut:arg}}     

######自定义过滤器函数

#myfilter.py
from django import template

@register.filter
def filter1(value,*arg)
	return "value是{0}参数有{1}".format(value,arg)

使用:



{% load myfilter.py %}
{{value|filter: "6"}}
{{value|filter}}

######标签的使用


{% tag %}


{% extends “base.html” %}
   
{% extends variable %}  

{% autoesape off %}   (内容)  {% endautoescape %}
 
{% block %}  (定议块内容) {% endblock %}  

{% comment %}     (内容)    {% endcommon %}
  
<tr class="{% cycle list %}">  ...  tr>
 
{% url 'app1:index' 0 %}    

######标签


{% if ... %}
{% elif ... %}
{% else %}
{% endif %}


{% for .. in .. %}
{% endfor %}


{% ifequal %}
{% else %}
{% endifequal %}

你可能感兴趣的:(Django)