模版标签和模版继承

django框架中的html称之为模版,也就是显示在网页上的界面,它有很多的标签,模版可以继承父模版
这是views.py文件中传入html模版中的数据,可以在模版中使用

def testDef(request):
return render(request, 'test/testHtml.html', context={

        'hello':helloJango,
        'fruit':fruitsT,
        'tu':tu,
        'dic':dic,
        'st':st,
        'xx':None,
        'num1':100,
        'num2':404,
        'list':li,
        'now':datetime.now,
        'html':'<h1>this is h1</h1>',
        'float':3.1415926,
        'name':'liping',
        'course':'django',
        'list1':[1, 2, 3, 4, 5, 6, 7, 8, 9],
        'list2':[1, 2, 3, 4, 5, 6, 7, 8, 9],

})
  • 常用标签 基本都是成对出现的
  • if 和 ifequal
    两个作用一样,都是判断语句
	{#if#}
	
	{% if name == 'liping' and course == 'django' %}
	
	    我是{{ name }} 瓜皮 <br>
	
	{% elif name == 'hello' %}
	
	    逗比 <br>
	
	{% else %}
	
	    你是瓜皮 <br>
	
	
	{% endif %}




	{#ifequal#}
	
	{% ifequal name 'liping' %}
	
	    {{ name }}你把刀收起来 <br>
	
	{% endifequal %}
  • for循环 循环语句
{#for循环#}
{#forloop.counter0 下标从0开始 正序#}
{#{% for i in list %}#}
{##}
{#    {% if forloop.counter0 == 1 %}#}
{##}
{#        {{ i }}#}
{##}
{#    {% endif %}#}
{##}
{##}
{#    <p>{{ i }}</p>#}
{##}
{#{% endfor %}#}


{#forloop.revcounter0 下标从0开始 倒序#}
{% for i in list %}

    {% if forloop.revcounter0 == 1 %}

        {{ i }}

    {% endif %}


    <p>{{ i }}</p>

{% endfor %}


<br>


{#forloop.first 第一次循环#}
{% for i in list %}

    {% if forloop.first %}


        第一次循环{{ i }} <br>

     {% else %}

        {{ i }}

    {% endif %}

{% endfor %}


<br>

两层循环
{#嵌套循环#}
{#forloop.parentloop.counter0 外层循环的次数#}
{% for i in list %}

    {% for j in tu %}

        {% if forloop.parentloop.counter0 == 1 %}

            {{ i }}{{ j }} <br>

         {% else %}

            xxxxxxxxxx  <br>

        {% endif %}


    {% endfor %}


{% endfor %}


<br>



{#99乘法表#}

{% for i in list1 %}

    {% for j in list2 %}

        {% if j <= i %}

           <button>{{ j }} * {{ i }} = {% widthratio j 1 i %}</button> &ensp;

        {% endif %}

    {% endfor %}

    <br>
    <br>

{% endfor %}


<br>
  • url跳转
    {#跳转链接#}
这是项目中定义的url
<a href="/book/bookDef/">跳转一</a>

{#通过 name跳转#}
name也是项目中给url取的名字,根据这个name跳转到那个url 第三个参数 django 000 是传进去的参数
<a href="{% url 'hello' 'django 000' %}">跳转二</a>


<br>
  • {#重命名 缓存变量#}
    也就是给变量取别名
{% with course as n %}

    {{ n }}

{% endwith %}
  • {#批量取消自动转义#}
    同时给多个取消自动转义
{% autoescape off %}

    {{ html }}
    {{ html }}
    {{ html }}
    {{ html }}
    {{ html }}
    {{ html }}

{% endautoescape %}
  • 模版的继承
  • 可以创建一个base文件
    这是base文件中的内容:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>

        把需要在子类中修改的内容用block 包裹起来
        {% block title %}

            baseTitle

        {% endblock %}

    </title>
</head>
<body>



把需要在子类中修改的内容用block 包裹起来
{% block top %}

    top

{% endblock %}

<br>

{% block middle %}

    middle

{% endblock %}

<br>

{% block bottom %}

    bottom

{% endblock %}



</body>
</html>
  • 这是子类test1中的内容:
这是继承父类的文件路径
{% extends 'test/base.html' %}



这是要修改 重写 的内容
{% block middle %}

{#调用父类的内容#}
    这是引用父类中的内容
    {{ block.super }} <br>
    
    子类中写的自己的内容
    这是test1的内容 <br>

{#    引入另外的界面#}
    这是引用另外一个界面的路径
    {% include 'test/test2.html' %}  <br>


{% endblock %}




{% block title %}

    test标题

{% endblock %}
  • 这是test2的界面内容
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>title2</title>
</head>
<body>

test2内容

</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值