Django的前端页面显示

从后端获取数据,在前端页面显示出来是Django交互的最后一步。

Django遵从的是以下原理:

from django.template import Context,Template
t = Template("{{ name }} is welcome")
c = Context( { "name" : "John" } )
t.render(c)

>>>u"John is welcome"

搬到页面上,即在后端传递c,在前端显示t,用c中的数据渲染t。

这一章主要说前端显示:

最简单的就是上面那种,一个{{}} 传递一个变量。

除此之外,可以用一些简单逻辑:

1.if语句:

{% if  name != 'John' %}
……
{% else %}
……
{% endif %}


没有elif语句,如果多个条件,需要不断嵌套。

{% if  name != 'John' %}
……
{% else %}
 
	{% if  name != 'Harry' %}
	……
	{% else %}
	……
	{% endif %}
{% endif %}

另外,在if中可以使用and、or来深化逻辑。但是一行之中and、or只能出现一种,不可混用。不过每一种之间可以使用多个,比如多个and、多个or。

对于判断两个变值是否相等,可以使用下面的语句:

{% if equal A B %}
……
{% else %}
……
{% endifequal %}
A、B可以为字符串(单、双、无引号均可)、整数、列表、小数,不可以为列表、字典、布尔类型
还有一些if语句要和for语句结合使用,放在for介绍中说明。


2.for:

基本用法:

{% for item in list %}
……
{% endfor %}

空表检测:

执行循环前,先检测列表大小,为空时给予提示。

{% for item in list %}#{% for item in list reversed%}表示逆向迭代
……
{% empty %}
…… #empty时执行这里操作
{% endfor %}

{% if list%}
	{% for item in list %}
	……
	{% endfor %}
{% else %}
…… #空时执行这里
{% endif %}
在循环中,可以根据循环次数做相应操作:

可以在if语句中使用下列变量进行操作:

forloop.counter 计数

forloop.revcounter 剩余数

forloop.first 第一次迭代

forloop.last 最后一次迭代

forloop.parentloop当前循环的上一级循环的forloop对象

forloop.parentloop.first./counter/last等

 
3.comment

在前端的python语句里可以使用注释:

单行注释:{# ……#}

多行注释:

{% comment %}
……
{% endcomment %}

4.过滤器 {{ date | date:"F j,Y"}} 从后台读进来的date值,可以通过指定格式的过滤器修改样式。F-moth j-day Y-year

其它过滤器还有:

| lower 变小写

| first | upper 首字母大写(类似于linux的通道)

| length 变量长度

| truncatewords:"30" 变量前30个词


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页