django入门与学习-运算符与表达式-3

这篇博客介绍了Django中的模板语言,包括`if-else-endif`、`for-endfor`和`for-empty-endfor`的用法。通过示例代码展示如何在视图和模板中进行条件判断和循环操作,并提供了运行截图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

坑爹的csdn把我在markdown里保存的没有写完的博客整没了,现在要重新写。
这部分的内容大家可以参照django的官方文档,上面写的很详细也很高端,这部分具体在django-document->The template layer->Built-in tags and filters,各位看官可以点击链接快速跳转。下面我要讲的只是django常用的一些,由于第一次接触python web方向的运算符与表达式,也期待跟大家一起学习。

if—else—endif

该语句主要执行判断,首先判断if—else之间的语句,如果为假则执行else—elseif之间语句,比较简单。下面代码中user对象包含一些属性但不包含level对象,因此判断会出错,其他为真,参考代码如下:

  • blog/views.py的参考代码
 from django.shortcuts import render_to_response
class Person(object):
    def __init__(self,name,gender,age):
        self.name = name
        self.gender = gender
        self.age = age
        ###Person类没有level属性
def index(req):
    user = Person('hepeng','male',23)
    return render_to_response('index1.html',{'title':'my page','user':user})
  • /blog/templates/index1.html的参考代码
<body>
<h1>这个人是:{{user.name}}</h1>
<h1>他的性别是:{{user.gender}}</h1>
<h1>他的年龄是:
{%if user.age%}
    {{user.age}}
{%else%}
    没有找到
{%endif%}
</h1>
<h1>他的水平是:
{%if user.level%}
    {{user.level}}
{%else%}
    没有找到
{%endif%}
</h1>
</body>
  • 运行截图
    运行截图1

    for—end for-1

    for—endfor标签毫无疑问是为模板中的循环准备的。很多时候我们并不知道list有多少内容,这个时候就需要用到该标签。
    这里我们编写一个list标签,标签里有一些内容,我们使用for标签将其取出。参考代码如下:

  • /blog/views.py

from django.shortcuts import render_to_response
book_list = ['Pride and Prejudice ','Black Beauty','Oliver Twist','Whtering Heights']

def index(req): 
    return render_to_response('index1.html',{'title':'my page','list':book_list})
  • /blog/templates/index1.html
 <body>
{% for book in list %}
<li>{{book}}</li>
{% endfor %}
</body>
  • 运行效果截图:
    for---endfor运行截图

for—endfor-2

有时候我们需要将字典的key也找出来,这个时候就需要for标签的另外一种用法。
例如有一个user字典,其中有name,,sex,age等属性,我们需要将他们一一显示出来,下面是参考代码:

  • blog/views.py
 from django.shortcuts import render_to_response
 def index(req):
    user = {'name':'Franky','gender':'male','age':23,'level':'freshman'}
    return render_to_response('index1.html',{'title':'my page','user':user})
  • blog/templates.index1.html
<body>
{% for op,val in user.items %}
    <li>{{op}}:{{val}}</li>
{% endfor %}
</body>
  • 运行代码截图:
    for标签截图2

for-empty-endfor

这部分标签是for—endfor的扩充,下面是简单的代码应用:

<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% empty %}
    <li>Sorry, no athletes in this list.</li>
{% endfor %}
</ul>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值