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

 {% for post in posts %}
<a href=""><h2>{{ post.title }}</h2></a>
<p>{{ post.body }}</p>
<p>{{ post.timestamp }}</p>
<hr>
{% endfor %}

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

{%%}标签:

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

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

 {# 比较2个参数的值,user1 user2 #}
{% ifequal user1 user2 %}
<p></p>
{% else %}
<p></p>
{% 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 %} 标签之间的内容

 {% extends "base.html" %}
{% block content %}
<form action="/blog/team/" method="post">{% csrf_token %}
<div align="center"><table >{{ form }}</table><br>
<input type=submit></div>
</form>
<hr>
{% 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,})

Python Django框架笔记(六):模板的更多相关文章

  1. Python Django框架笔记(三):django工作方式简单说明和创建用户界面

    (一)  说明 简单说明下django的工作方式,并举2个例子. (二)  Django工作方式 假定我们有下面这些文件 ,这里在前2篇的基础上增加了 templates目录(存放html文件) 和s ...

  2. Python Django框架笔记(五):模型

    #前言部分来自Django Book (一)    前言 大多数web应用本质上: 1. 每个页面都是将数据库的数据以HTML格式进行展现. 2. 向用户提供修改数据库数据的方法.(例如:注册.发表评 ...

  3. Python Django框架笔记(一):安装及创建项目

     #推荐一本书<Python核心编程>(适合有一定基础的),美国人Wesley Chun编写的,京东.淘宝应该都有.我是觉得写的很好,详细.简洁.满满的干货,不像有的书整本看完也没什么用. ...

  4. Python Django框架笔记(二):创建应用和django 管理

    #前提是已经创建项目 (一)      创建应用 使用命令,在项目中创建一个应用(blog自定义) python manage.py startapp blog 创建完成后,可以看到下面几个文件 文件 ...

  5. Python Django框架笔记(四):数据分页和CSRF跨站点请求伪造

    (一)数据分页  可以参考  https://docs.djangoproject.com/en/2.0/topics/pagination/ 模板:如果只要显示 1.2.3.4.5.6....的话, ...

  6. [Python] Django框架入门

    说明:Django框架入门 当前项目环境:python3.5.django-1.11 项目名:test1 应用名:booktest 命令可简写为:python manager.py xxx => ...

  7. Python Flask学习笔记之模板

    Python Flask学习笔记之模板 Jinja2模板引擎 默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板.Flask提供的render_template函数把Jinja ...

  8. Django开发笔记六

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.登录功能完善 登录成功应该是重定向到首页,而不是转发 ...

  9. 利用 Python django 框架 输入汉字,数字,字符,等。。转成二维码!

    利用 Python django 框架 输入汉字,数字,字符,等..转成二维码! 模块必备:Python环境 + pillow  + qrcode 模块 核心代码import qrcode qr = ...

随机推荐

  1. 获取Javascript 滚动条距离顶部的距离(兼容IE6+,火狐,谷歌,其它没测)

    document.body.scrollTop || document.documentElement.scrollTop

  2. JavaScript基础(一)概述

    JavaScript 概述 JS作用 验证表单(以前的网速慢) 页面特效(PC端的网页效果) 移动端(移动web和app) 异步和服务器交互(AJAX) 服务端开发(nodejs) 语言类型 js是一 ...

  3. java学习-http中get请求的非ascii参数如何编码解码探讨

    # 背景: 看着别人项目代码看到一个PathUtils工具类, 里面只有一个方法,String  rebuild(String Path),将路径进行URLDecoder.decode解码,避免路径中 ...

  4. 微信小程序——豆瓣电影——(2):小程序运行部署

    Demo 预览 演示视频(流量预警 2.64MB) GitHub Repo 地址 仓库地址:https://github.com/zce/weapp-demo 使用步骤 将仓库克隆到本地: bash ...

  5. Git 管理项目

    一个很小的HTML项目,使用.Git来记录和跟踪这个项目.包括以下内容: 创建版本库. 添加与修改文件. 创建新分支. 打标签并整理版本库. 克隆版本库. 创建版本库 Creating a Repos ...

  6. Java 8 新特性-菜鸟教程 (1) -Java 8 Lambda 表达式

    Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性. Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中). 使用 Lambda 表达式可以使代码变的更加 ...

  7. U3D Invoke系列函数

    public void Invoke(string methodName, float time) 多少秒后执行某个函数 参数说明: methodName:要执行的函数的名称 time:秒数,time ...

  8. Spring基础(3) : 静态工厂和实例工厂创建bean

    public class Factory { public static Person staticCreate(){ Person p = new Person(); p.name="st ...

  9. 在Android开发中替换资源图片不起作用的解决方法

    现象 在android开发中,经常会需要替换res\drawable中的图片,打开res\layout下的文件预览布局页面发现图片已经被替换,但在模拟器或者真实机器上运行时发现该图片并没有被替换,还是 ...

  10. 理解JVM之Java内存区域

    Java虚拟机运行时数据区分为以下几个部分: 方法区.虚拟机栈.本地方法栈.堆.程序计数器.如下图所示: 一.程序计数器 程序计数器可看作当前线程所执行的字节码行号指示器,字节码解释器工作时就是通过改 ...