django中嵌入html的语法

本文介绍了Django模板语言的基本规则,包括变量、条件判断(if/else、ifequal/ifnotequal)、循环(for)以及注释的使用。详细讲解了{% for %}标签的特性,如reversed、empty、forloop变量。还提到了模板过滤器和模板继承的概念,强调了{% extends %}和{% block %}标签的使用技巧。
摘要由CSDN通过智能技术生成

原文档:

https://docs.djangoproject.com/en/1.8/topics/templates/#the-django-template-language

总结如下:

Django模板语言 The Django template language

模板中常用的语法规则

{最新版本的Django语法可能有改变,不支持的操作可能支持了。[HTML教程 - 基本元素/标签及属性]}

Django变量Variables

A variable outputs a value from the context, which is a dict-like objectmapping keys to values.

Variables are surrounded by { { and}} like this:

My first name is {
    {
     first_name }}. My last name is {
    {
     last_name }}.
With a context of {'first_name':'John','last_name':'Doe'}
Django 模板标签
if/else 标签
1. 基本语法格式如下:
{% if condition %}
     ... display
{% endif %}

或者:

{% if condition1 %}
   ... display 1
{% elif condiiton2 %}
   ... display 2
{% else %}
   ... display 3
{% endif %}

根据条件判断是否输出。if/else 支持嵌套。

Note:模板标签中的变量是不用{ {}}包含的。

2. {% if %} 标签接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not ),例如:

{% if athlete_list and coach_list %}
     athletes 和 coaches 变量都是可用的。
{% endif %}

Note:

1. {% if %} 标签不允许在同一个标签中同时使用 andor ,因为逻辑上可能模糊的,这样的代码是不合法的:

{% if athlete_list and coach_list or cheerleader_list %}
2. 系统不支持用圆括号来组合比较操作。 如果你确实需要用到圆括号来组合表达你的逻辑式,考虑将它移到模板之外处理,然后以模板变量的形式传入结果吧。 或者,仅仅用嵌套的 {%if%}标签替换

for 标签

1. {% for %} 允许我们在一个序列上迭代。与Python的 for 语句的情形类似,循环语法是 for X in Y ,Y是要迭代的序列而X是在每一个特定的循环中使用的变量名称。

每一次循环中,模板系统会渲染在 {% for %} 和 {% endfor %} 之间的所有内容。

例如,给定一个运动员列表 athlete_list 变量,我们可以使用下面的代码来显示这个列表:
<ul>
{% for athlete in athlete_list %}
    <li>{
 { athlete.name }}</li>
{% endfor %}
</ul>

2. 给标签增加一个 reversed 使得该列表被反向迭代:

{% for athlete in athlete_list reversed %}

3. 可以嵌套使用 {% for %} 标签。

在执行循环之前先检测列表的大小是一个通常的做法,当列表为空时输出一些特别的提示。`` for`` 标签支持一个可选的`` {% empty %}`` 分句,通过它我们可以定义当列表为空时的输出内容 下面的例子与用if-else实现等价:

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

4. Django不支持退出循环操作。 如果我们想退出循环,可以改变正在迭代的变量,让其仅仅包含需要迭代的项目。 同理,Django也不支持continue语句ÿ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lm_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值