最近接触的两个web项目都用到了Django,第一个是根据已有模板修改的还算比较容易,第二个小项目据资深人士~~~嗦:由于要建立前后台联系,需要写成模板,所以来学习哈~^_^
1.介绍:首先套用
The Django Book 2.0--中文版
的一句介绍:
本质上来说, Django 只不过是用 Python 编写的一组类库。 用 Django 开发站点就是使用这些类库编写 Python 代码。 因此,学习 Django 的关键就是学习如何进行 Python 编程并理解 Django 类库的运作方式。
再来介绍下模板:模板是一个文本,用于分离文档的表现形式和内容。 模板通常用于产生HTML,但是Django的模板也能产生任何基于文本格式的文档。
2.简单介绍下常见入门语法
<1>变量(variable):用两个大括号括起来的文字,例如:{{person_name}}
<2>模板标签(template tag):用“{%”和“%}”括起来的内容;标签(tag)定义比较明确,即: 仅通知模板系统完成某些工作的标签。
3.基本的模板标签和过滤器
<1>if/else标签:类似其他计算机语言用法
{%if value%}
如果value为true,模板将自动执行if到endif的内容
{%else%}为可选内容
为了方便办一个现成的例子:
{% if today_is_weekend %}
<p>Welcome to the weekend!</p>
{% else %}
<p>Get back to work.</p>
{% endif %}
{%if%}标签支持 and or not等对变量进行判断,例如:
{% if today_is_weekend and not today_is_Monday%}
<p>Welcome to the weekend!</p>
{% endif %}
为了防止模糊,不允许一个标签中同时使用 and or;也不支持用圆括号组合判断;
一定要用{%else%}关闭标签{%if%}。
<2>for
在一个序列迭代,语法 : for x in y
y是要迭代的序列而x是在每一个特定的循环中使用的变量名称。 每一次循环中,模板系统会调用在 {% for %} 和{% endfor %} 之间的所有内容。
在{%for%}中有个 forloop的变量有提示循环信息的属性:
forloop.counter提示循环次数
forloop.parentloop 是一个指向当前循环的上一级循环的 forloop 对象的引用
forloop 变量仅仅能够在循环中使用。 在模板解析器碰到{% endfor %}标签后,forloop就不可访问了。
<3>ifequal/ifnotequal
用于判断两个模板变量相等与否
例如:比较 变量 a b
{%ifequal a b%}
<p>a=b</P>
{%enifequal%}
参数可以是硬编码的字符串,随便用单引号或者双引号引起来,所以下列代码都是正确的:
{% ifequal section 'sitenews' %}
<h1>Site News</h1>
{% endifequal %}
{% ifequal section "community" %}
<h1>Community</h1>
{% endifequal %}
同样支持{%else%}标签
<4>注释
就像HTML或者Python,Django模板语言同样提供代码注释。 注释使用 {# #} :
{#this is zhushi#}
多行注释:{%comment%}{%endcomment%}
{% comment %}
This is a
multi-line comment.
{% endcomment %}
<5>过滤器
使用“|”这个符号
例如{{ name | lower}}将显示把name的内容全部小写后的内容
三个常用过滤器:
addslashes:在反斜杠,单引号,双引号前添加反斜杠
data:
date : 按指定的格式字符串参数格式化 date 或者 datetime 对象, 范例:
{{ pub_date|date:"F j, Y" }}
length : 返回变量的长度。
<6>include模板标签
{%include%}用于在一个模板中引入一个模板
例如:引入nav.heml模板
{ % include ‘nav.html ’% }