该实战教程基于菜鸟教程,菜鸟教程可参考:http://www.runoob.com/django/django-template.html

模板语法,每个框架都有其支持的模板语法,Django的模板语法在我看来与vue.js倒有一些相似处

,比如它们的模板语法中参数为{{parm}}。

本篇所用到的例子,仍然基于实战(一)

在HelloWorld(该文件夹有urls.py)目录下新增templates文件夹,在templates新增hello.html

<html>
<head>
</head>
<body>
<h1>{{ hello }}</h1>
</body>
</html>

修改settings.py文件夹

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR+"/templates",], # 修改位置
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]

这个修改位置就好比Java的SSM开发中的视图解析器(可以是freemarker,可以是jsp,也可以是volocity等)。

修改view.py

# -*- coding: utf-8 -*-
#from django.http import HttpResponse
from django.shortcuts import render
def hello(request):
context = {}
context['hello'] = 'Hello World!'
return render(request, 'hello.html', context)

这里的context与Java中的Map或者是Model倒也几分相似。

简单的说,都是来返回给前端数据渲染用的。

最后显示为:

这里说一下Django的模板语言

编程语言什么if-else ,if-else if -else,for 等等是十分比较常用的。

而Django作为Python的web框架同样如此。

(1)if/else或if/elseif/else标签

{% if condition %}
... display
{% endif %} 或
{% if condition1 %}
... display 1
{% elif condition2 %}
... display 2
{% else %}
... display 3
{% endif %} (2)for标签
<ul>
{% for athlete in athlete_list %}
<li>{{ athlete.name }}</li>
{% endfor %}
</ul> (3)ifequal/ifnotequal 标签

{% ifequal %} 标签比较两个值,当他们相等时,显示在 {% ifequal %} 和 {% endifequal %} 之中所有的值。

下面的例子比较两个模板变量 user 和 currentuser :

{% ifequal user currentuser %}
<h1>Welcome!</h1>
{% endifequal %} 和 {% if %} 类似, {% ifequal %} 支持可选的 {% else%} 标签:8
{% ifequal section 'sitenews' %}
<h1>Site News</h1>
{% else %}
<h1>No News Here</h1>
{% endifequal %} (4)注释标签
{# 这是一个注释 #}

(5)过滤器
模板过滤器可以在变量被显示前修改它,过滤器使用管道字符,如下所示:
{{ name|lower }}

{{ name }} 变量被过滤器 lower 处理后,文档大写转换文本为小写。

过滤管道可以被* 套接* ,既是说,一个过滤器管道的输出又可以作为下一个管道的输入

(6)include 标签

{% include "nav.html" %}

同jsp中的<%include file="nav.html"%>
要说区别除了Python与Java的区别外,那就只能说{和%区别。
 

Django实战(二)之模板语言的更多相关文章

  1. Django(二) 模板:基本使用、模板语法、模板继承

    一.模板的使用实战 接:https://blog.csdn.net/u010132177/article/details/103788677 参考:https://docs.djangoproject ...

  2. Django学习之 - 基础模板语言

    模板语言if/else/endif {% if today_is_weekend %} <p>Welcome to the weekend!</p> {% else %} &l ...

  3. freeMarker(十二)——模板语言补充知识

    学习笔记,选自freeMarker中文文档,译自 Email: ddekany at users.sourceforge.net 1.特殊变量参考 特殊变量是由FreeMarker引擎自己定义的变量. ...

  4. Django中级篇之模板语言

    模板 一.引用变量 模版的创建过程,对于模版,其实就是读取模版(其中嵌套着模版标签),然后将 Model 中获取的数据插入到模版中,最后将信息返回给用户. {{ xxx }} 二.标签 用{%  %} ...

  5. Django入门二之模板语法

    一. 模板变量 Context传入的可以是一个str,dict,list,甚至是一个实例对象 在html中如何调用这些对象进行取值呢 1. 变量名 {{ variable }} 返回字符串,无论是st ...

  6. django 实战篇之模板层

    模板层 ​ {{}} 变量相关 ​ {%%} 逻辑相关 ​ 前端获取容器类型的数据统一使用 句点符(.) ​ 两种给模板传递值的方式 return render(request,'index.html ...

  7. Day18 Django之路由系统、模板语言、Ajax、Model

    一.路由系统 1.创建Django项目 django-admin startproject day18 cd day18 python3 manage.py startapp app01 2.app0 ...

  8. Django之模板语言

    一.模板语言介绍 模板语言渲染的整个过程其实就是将html转换成函数,并为该函数提供全局变量,然后执行该函数 二.模板语言的语法 模板中也有自己的语言,该语言可以实现数据展示 # 业务请求处理做的页面 ...

  9. Django模板语言详解

    本节将介绍Django模版系统的语法.Django模版语言致力于在性能和简单性上取得平衡. 如果你有过其它编程背景,或者使用过一些在HTML中直接混入程序代码的语言,那么你需要记住,Django的模版 ...

随机推荐

  1. php分页实例及其原理

    Part1:实例 /** * 取得上次的过滤条件 * @param string $param_str 参数字符串,由list函数的参数组成 * @return 如果有,返回array('filter ...

  2. K:求取两个数的最大公约数的两个算法

    相关介绍:  最大公因数,也称最大公约数.最大公因子,指两个或多个整数共有约数中最大的一个.a,b的最大公约数记为gcd(a,b).同样的,a,b,c的最大公约数记为gcd(a,b,c),多个整数的最 ...

  3. MVC 导出Execl 的总结几种方式 (二)

    接着上面的来,继续导出Execl 的功能 使用FileResult 方式直接可以生产Execl ,这样我们将会写大量处理后台的代码,个人感觉不好,只是展示出来,提供参考 第一步:编辑控制器 publi ...

  4. 使用ArcGIS Chef Cookbook轻松搞掂WebGIS平台部署

    1.安装Chef Client v12版本. 2.复制arcgis cookbook资源到Chef安装目录. 3.考虑到一般部署的服务器环境无法连接互联网,所以需要事先部署ArcGIS Cookboo ...

  5. CentOS6.5(4)----宿主机无法访问虚拟机中的web服务解决方案

    宿主机无法访问虚拟机中的web服务 在Windows7宿主机中的VMware虚拟机中安装了CentOS6.5操作系统,并且基于Nginx搭建了Web服务器,网页刚刚搭建好的时候,通过宿主机的浏览器可以 ...

  6. Slf4j打印异常的堆栈信息

    一.前言 直接用logger.info("异常信息为:"+e)或者logger.info(e.getMessage())只能记录到异常的描述信息,却没有其异常具体发生在哪一行代码. ...

  7. js时间戳转换日期

    //js时间戳转换日期function formatDate(now) { var year=now.getFullYear(); var month=now.getMonth()+1; var da ...

  8. 自创open vp n windows步骤

    Easy Windows Guide¶ This page contains a no-frills guide to getting OpenVPN up and running on a Wind ...

  9. .net 的page的OnInit方法

    /// <summary> /// 重写父类的方法,父类要执行的方法已经被覆盖 /// </summary> /// <param name="e"& ...

  10. [翻译] DXPopover

    DXPopover A Popover mimic Facebook app popover using UIKit. 使用UIKit框架写了一个类似于Facebook的pop效果的动画. The c ...