• Python Django框架笔记(六):模板


    (一){%%}和{{ }}

    1 {% for post in posts %}
    2         <a href=""><h2>{{ post.title }}</h2></a>
    3         <p>{{ post.body }}</p>
    4         <p>{{ post.timestamp }}</p>
    5         <hr>
    6 {% endfor %}

    {%%}:里面的是模板标签,{{}}里面的是变量

    {%%}标签:

    1 {% if  x == 1%} 
    2      <p></p>
    3 {% else %}
    4     <p></p>
    5 {% endif %}
    1 {% for a in a_list %}
    2         <p>{{ a.name }}</p>
    3 {% endfor %}

    只有模板变量、字符串、整数和小数可以作为 {% ifequal %} 标签的参数,像字典、列表、布尔类型的是不能用在 {% ifequal %}中的,例如{% ifequal test [1,2,3] %}是错误的

    1 {# 比较2个参数的值,user1 user2 #}
    2     {% ifequal user1 user2 %}
    3         <p></p>
    4     {% else %}
    5         <p></p>
    6     {% endifequal %}

    {% include %}模板标签可以显示其他模板的内容{% include template_name %},例如

    {% include 'login.html' %}

    (二)模板继承

    可以在一个HTML页面中定义公共内容(网站logo等),其他页面继承这个模板

    1、定义基础模板base.html

    <!-- base.html -->
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>我的博客-所有博客列表</title>
    </head>
    <style>
    </style>
    <body>
    {% block content %}
    {% endblock %}
    <div align="center">python django 网站 2018 ©版权所有</div>
    </body>
    </html>
    {% block content %}

    {% endblock %}
    这个标签之间的内容是可以替换的

    2、继承,例如:下面这个就是

    第一行继承 base.html,后面的就是替换base.html  {% block content %}       {% endblock %} 标签之间的内容

    1 {% extends "base.html" %}
    2 {% block content %}
    3 <form action="/blog/team/" method="post">{% csrf_token %}
    4     <div align="center"><table >{{ form }}</table><br>
    5     <input type=submit></div>
    6 </form>
    7 <hr>
    8 {% endblock %}

    (三)模板渲染

    模板创建好后,可以用 context 来传递数据给它。 一个context是一系列变量和它们值的集合,类似于字典。

    例如: django.shortcuts 文件中的render函数

    def render(request, template_name, context=None, content_type=None, status=None, using=None):
        """
        Return a HttpResponse whose content is filled with the result of calling
        django.template.loader.render_to_string() with the passed arguments.
        """
        content = loader.render_to_string(template_name, context, request, using=using)
        return HttpResponse(content, content_type, status)

    第二个参数就是模板,第三个就是要传给模板的数据

    def login(request):
        return render(request,'login.html',{'form':LoginPostForm,})
  • 相关阅读:
    HDU 5273 Dylans loves sequence 暴力递推
    HDU 5285 wyh2000 and pupil 判二分图+贪心
    HDU 5281 Senior's Gun 贪心
    HDU 5651 xiaoxin juju needs help 逆元
    HDU 5646 DZY Loves Partition
    HDU 5366 The mook jong
    HDU 5391Z ball in Tina Town 数论
    HDU 5418 Victor and World 允许多次经过的TSP
    HDU 5642 King's Order dp
    抽屉原理
  • 原文地址:https://www.cnblogs.com/simple-free/p/9041738.html
Copyright © 2020-2023  润新知