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>
显示效果
最终显示效果如下

python测试开发django-67.templates模板变量取值的更多相关文章
- python测试开发django-36.一对一(OneToOneField)关系查询
前言 前面一篇在xadmin后台一个页面显示2个关联表(OneToOneField)的字段,使用inlines内联显示.本篇继续学习一对一(OneToOneField)关系的查询. 上一篇list_d ...
- python测试开发django-16.JsonResponse返回中文编码问题
前言 django查询到的结果,用JsonResponse返回在页面上显示类似于\u4e2d\u6587 ,注意这个不叫乱码,这个是unicode编码,python3默认返回的编码 遇到问题 接着前面 ...
- python测试开发django-15.查询结果转json(serializers)
前言 django查询数据库返回的是可迭代的queryset序列,如果不太习惯这种数据的话,可以用serializers方法转成json数据,更直观 返回json数据,需要用到JsonResponse ...
- 【python测试开发栈】python基础语法大盘点
周边很多同学在用python,但是偶尔会发现有人对python的基础语法还不是特别了解,所以帮大家梳理了python的基础语法(文中的介绍以python3为例).如果你已然是python大牛,可以跳过 ...
- 2019第一期《python测试开发》课程,10月13号开学
2019第一期<python测试开发>课程,10月13号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:10月13号-12月8号,每周六.周日晚上20: ...
- python测试开发django-rest-framework-63.基于函数的视图(@api_view())
前言 上一篇讲了基于类的视图,在REST framework中,你也可以使用常规的基于函数的视图.它提供了一组简单的装饰器,用来包装你的视图函数, 以确保视图函数会收到Request(而不是Djang ...
- Python测试开发-创建模态框及保存数据
Python测试开发-创建模态框及保存数据 原创: fin 测试开发社区 前天 什么是模态框? 模态框是指的在覆盖在父窗体上的子窗体.可用来做交互,我们经常会看到模态框用来登录.确定等等,到底是怎 ...
- 《Python测试开发技术栈—巴哥职场进化记》—前言
写在前面 今年从4月份开始写一本讲Python测试开发技术栈的书,主要有两个目的,第一是将自己掌握的一些内容分享给大家,第二是希望自己能系统的梳理和学习Python相关的技术栈.当时我本来打算以故事体 ...
- python测试开发django-197.django-celery-beat 定时任务
前言 django-celery-beat 可以支持定时任务,把定时任务写到数据库. 接着前面这篇写python测试开发django-196.python3.8+django2+celery5.2.7 ...
随机推荐
- java基础 类 & 继承
类 在Java中,类文件是以.java为后缀的代码文件,在每个类文件中可以有多个类,但是最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在 ...
- 2018的Java
少用复制黏贴 程序员很多时候都习惯复制黏贴,这里复制一点,那里复制一点,拼拼凑凑的搞出了一段代码.这是一种常态,毕竟没有必要重复造轮子,在开发的时候,讲究的是效率,讲究速度,有时候也是不得不这样做.但 ...
- Linux配置DNS
vi /etc/resolv.conf, 后面加上nameserver 114.114.114.114
- 【转】android实时视频网络传输方案总结(一共有五套)
最近研究了Android的实时视频网络传输问题,在视频处理方面花费了大量精力进行研究,总结出以下五套方案,并加以比较 以320×240大小的视频传输为例 方案 压缩率 压缩/传输方式 实时性 平均流量 ...
- select列表遍历和触发事件
1.以下两种都是jquery获取select列表被选中的value.var strText=$("#select_id").find("option:selected&q ...
- web-debug-server
web-debug-server 项目来自:https://github.com/itzg/web-debug-server 这位大哥的镜像做的很有意思:一个很小的web debug服务器,访问它可以 ...
- CMD使用的几个小技巧
一.自定义窗口初始化大小 以前在Windows 7的时候感觉打开cmd时窗口初始化的大小还是比较合适的,但到Windows 10之后打开cmd窗口就很大一点都不适应----当然也可能是新电脑分辨率比较 ...
- ubuntu docker 下mongodb集群和分片
首先我们计划启动了三个mongo服务:master,salve,arbiter 1.准备工作 新建文件夹如图(每个文件夹下面有db和configdb文件夹): 生成认证文件并修改权限 openssl ...
- Replication:Distribution Reader
在transactional replication中,在publication中执行了一个更新,例如:update table set col=? Where ?,如果table中含有大量的数据行, ...
- golang学习 ---defer语句
golang语言defer特性详解 defer语句是go语言提供的一种用于注册延迟调用的机制,它可以让函数在当前函数执行完毕后执行,是go语言中一种很有用的特性.由于它使用起来简单又方便,所以深得go ...