python测试开发django-67.templates模板变量取值

前言

django 的模板里面变量取值是通过句点语法来取值,就是一个点(.)符号。取值的对象也可以是字符串,int类型,list列表,字典键值对,也可以是一个类的实例对象。

views视图

比如我在 views.py 视图函数定义了一些不同类型的变量

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
from django.http import JsonResponse
from django.shortcuts import render

# 上海悠悠,QQ交流群:750815713

def personalView(request):
context = {
"name": "上海-悠悠",
"n_name": "悠悠",
"age": 20,
"fancy": ["python", "django", "pytest"],
"blog": {
"url": "https://www.cnblogs.com/yoyoketang/",
"img": "https://pic.cnblogs.com/avatar/1070438/20161126151035.png"
}
}

class Myblog():
def __init__(self):
self.name = "上海-悠悠"
self.age = 20

def guanzhu(self):
return 100

def fensi(self):
return 1000
myblog = Myblog() # 实例
context["myblog"] = myblog

return render(request, "personal.html", context=context)

templates模板

在 templates 目录下新建一个 personal.html 模板

  • string 字符串和 int 类型,通过key名称直接取值,如:

    {{ n_name }}

  • list类型的取值,通过点下班取值,如:

    {{ fancy.0 }}、{{ fancy.1 }}、{{ fancy.2 }}

  • dict类型的,通过.keyname取值,如:

    {{ blog.url }}

  • 类的实例对象,属性通过点属性取值,如:

    {{ myblog.name}}

  • 类的方法,不带参数的方法,通过点方法取值,如:

    {{ myblog.fensi }}

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="referrer" content="no-referrer" />
<title>Title</title>
</head>
<body>

<div>
<h1 class="display_name">{{ name }}</h1>

<div>
<p class="text_gray"><span>姓名: </span>{{ n_name }}</p>
<p class="text_gray"><span>年龄:</span>{{ age }}</p>
<p class="text_gray"><span>感兴趣的技术:</span>{{ fancy.0 }}、{{ fancy.1 }}、{{ fancy.2 }}</p>
</div>

</div>
<h1 class="display_name">通过字典对象取值</h1>

<div>
<p class="text_gray"><span>博客地址: </span>
<a href="{{ blog.url }}"> {{ blog.url }} </a>
</p>
<p class="text_gray"><span>头像</span>
<img src="{{ blog.img }}">
</p>
</div>

<h1 class="display_name">通过属性、方法取值</h1>
<p class="text_gray"><span>名称:</span>{{ myblog.name }}</p>
<p class="text_gray"><span>关注数: </span>{{ myblog.guanzhu }}</p>
<p class="text_gray"><span>粉丝数:</span>{{ myblog.fensi }}</p>
</body>
</html>

显示效果

最终显示效果如下

2019第一期《python测试开发》课程,10月13号开学!

本期上课时间:10月13号-12月8号,每周六、周日晚上20:30-22:30

(0)

相关推荐

  • python测试开发django -140.Bootstrap 缩略图

    前言 网格中布局图像.视频.文本等.Bootstrap 通过缩略图为此提供了一种简便的方式.使用 Bootstrap 创建缩略图的步骤如下: 在图像周围添加带有 class .thumbnail 的& ...

  • python测试开发django -143.Bootstrap 表单控件校验状态

    前言 Bootstrap 对表单控件的校验状态,如 error.warning 和 success 状态,都定义了样式.使用时,添加 .has-warning..has-error 或 .has-su ...

  • python测试开发django -142.Bootstrap 表单(form)

    前言 HTML 表单用于收集不同类型的用户输入.boostrap中表单有几种样式 基本垂直表单 内联表单 form-inline 水平排列表单 form-horizontal 基本表单实例 单独的表单 ...

  • python测试开发django -141.Bootstrap 面板(Panels)

    # 前言 面板组件用于把 DOM 组件插入到一个盒子中.创建一个基本的面板,只需要向 元素添加 class .panel 和 class .panel-default 即可 基础面板 不带标题的基本面 ...

  • python测试开发django -144.Ace Editor 在线编辑python代码

    前言 网页上想在线编辑代码,可以使用Ace Editor 在线编辑实现.比如我们想实现一个功能,在网页版上写python代码,能有python的语法自动补齐功能. Ace Editor 在线编辑 AC ...

  • python测试开发django-2.templates模板与html页

    前言 Django 中的视图的概念是一类具有相同功能和模板的网页的集合.通俗一点来说,就是你平常打开浏览器,看到浏览器窗口展示出来的页面内容,那就是视图. 前面一章通过浏览器访问http://127. ...

  • python测试开发django-5.模板templates

    前言 html是一个静态的语言,里面没法传一些动态参数,也就是一个写死的html页面.如果想实现在一个固定的html样式,传入不同的参数,这就可以用django的模板传参来解决. <玩转Djan ...

  • python测试开发django-69.templates模板过滤器filter

    前言 templates 模板里面过滤器 filter 的作用是对变量的出来,比如小写转大写,替换一些特殊字符,对列表取值,排序等操作. 内置的过滤器有很多,本篇拿几个常用的过滤器做案例讲解下相关的功 ...

  • python测试开发django-6.模板中include使用

    前言 当我们打开一个网站的时候,在打开不同的页面时候,会发现每个页面的顶部.底部内容都差不多,这样就可以把这些公共的部分,单独抽出来. 类似于python里面的函数,把公共部分写成函数,然后调用就行了 ...