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,})

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT派

Python爬虫库-Beautiful Soup的使用

Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库,简单来说,它能将HTML的标签文件解析成树形结构,然后方便地获取到指定标...

1453
来自专栏JavaEdge

后端开发必备JQuery常用知识点jQuery.each(object, [callback])1 筛选2 属性3 文档处理4 回调函数

向每个匹配的元素内部追加内容。 这个操作与对指定的元素执行appendChild方法,将它们添加到文档中的情况类似。

913
来自专栏GreenLeaves

Jquery 触发器之treigger()方法简介

trigger是个很神奇的东西,它可以模拟简单的用户输入操作。并触发点击click, mouseover, keydown 等事件. 具体使用方法如下: $("...

1939
来自专栏杨龙飞前端

数字千分位处理,number.js,js保留两位,整数强制保留两位小数 杨龙飞

3914
来自专栏北京马哥教育

Python爬虫库-BeautifulSoup的使用

Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库,简单来说,它能将HTML的标签文件解析成树形结构,然后方便地获取到指定标...

1010
来自专栏破晓之歌

VUE一些积累 原

Vue.js在模板表达式中限制了,绑定表达式最多只能有一条表达式,但某些数据需要一条以上的表达式运算实现,此时就可以将此数据放在计算属性(computed)当中...

963
来自专栏无所事事者爱嘲笑

vue要点记录(待更新)

1753
来自专栏xingoo, 一个梦想做发明家的程序员

【AngularJS】—— 12 独立作用域

前面通过视频学习了解了指令的概念,这里学习一下指令中的作用域的相关内容。 通过独立作用域的不同绑定,可以实现更具适应性的自定义标签。借由不同的绑定规则绑定属...

2018
来自专栏我和PYTHON有个约会

爬虫0040:数据筛选爬虫处理之结构化数据操作

爬虫程序,主要是运行在网络中进行数据采集的一种计算机程序,正常的一个爬虫采集数据的过程大致如下:

2201
来自专栏Golang语言社区

【前端基础】JS基础学习笔记整理

JavaScript是一种基于对象的脚本编程语言,是浏览器上的程序语言。当web容器输出内容到浏览器时,这个内容是包含js源代码的,此时,JavaScript可...

4767

扫码关注云+社区

领取腾讯云代金券