关于django的模板

模板

问题

如何向请求者返回一个漂亮的页面呢?

肯定需要用到html、css,如果想要更炫的效果还要加入js,问题来了,这么一堆字段串全都写到视图中,作为HttpResponse()的参数吗?这样定义就太麻烦了吧,因为定义字符串是不会出任何效果和错误的,如果有一个专门定义前端页面的地方就好了。

解决问题的技术来了:模板

在Django中,将前端的内容定义在模板中,然后再把模板交给视图调用,各种漂亮、炫酷的效果就出现了。

创建模板

为应用booktest下的视图index创建模板index.html,目录结构如下图:

设置查找模板的路径:打开test1/settings.py文件,设置TEMPLATES的DIRS值

'DIRS': [os.path.join(BASE_DIR, 'templates')],

定义模板

打开templtes/booktest/index.html文件,定义代码如下:

<html>
<head><title>图书列表</title>
</head>
<body>
<h1>{{title}}</h1>
{%for i in list%}
{{i}}<br>
{%endfor%}
</body>
</html>

在模板中输出变量语法如下,变量可能是从视图中传递过来的,也可能是在模板中定义的。

{{变量名}}

在模板中编写代码段语法如下:

{%代码段%}

视图调用模板

调用模板分为三步骤:

  • 1.找到模板
  • 2.定义上下文
  • 3.渲染模板

打开booktst/views.py文件,调用上面定义的模板文件

from django.http import HttpResponse
from django.template import loader,RequestContextdef index(request):# 1.获取模板template=loader.get_template('booktest/index.html')# 2.定义上下文context=RequestContext(request,{'title':'图书列表','list':range(10)})# 3.渲染模板return HttpResponse(template.render(context))

打开浏览器刷新页面,显示效果如下图:

视图调用模板简写

视图调用模板都要执行以上三部分,于是Django提供了一个函数render封装了以上代码。 方法render包含3个参数:

  • 第一个参数为request对象
  • 第二个参数为模板文件路径
  • 第三个参数为字典,表示向模板中传递的上下文数据

打开booktst/views.py文件,调用render的代码如下:

from django.shortcuts import renderdef index(request):context={'title':'图书列表','list':range(10)}return render(request,'booktest/index.html',context)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456706.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hbase简介及常用命令相关知识总结

文章目录目录前言&#xff1a;1.Hbase简介1.1、什么是Hbase1.2、与传统数据库的对比1.3、Hbase集群中的角色2、Hbase数据模型3、Hbase命令总结&#xff1a;目录 前言&#xff1a; 对于Hbase来说&#xff0c;由于其是基于列的数据库&#xff0c;所以比传统的数据库快许多&…

Storm入门简介

目录前言&#xff1a;1、Storm简介2、Storm与Hadoop的区别3、Storm核心组件4、Storm编程模型5、流式计算一般架构图&#xff08;重要&#xff09;总结&#xff1a; 目录 前言&#xff1a; 在介绍Storm之前&#xff0c;先介绍下离线计算。 离线计算&#xff1a;批量获取数据…

前端模板预编译技术

什么是前端模板预编译 前端模板预编译通过预编译技术让前端模板突破浏览器限制&#xff0c;实现后端模板一样的同步“文件”加载能力。它采用目录来组织维护前端模板&#xff0c;从而让前端模板实现工程化管理&#xff0c;最终保证前端模板在复杂单页 web 应用下的可维护性。同…

node08-express

目录&#xff1a;node01-创建服务器 node02-util node03-events node04-buffer node05-fs node06-path node07-http node08-express node09-cookie express模块&#xff1a; 1 /*2 * express是一个应用框架3 * 1、路由4 * 2、中间件5 * 3、模板引擎6 * */7 8 var express requ…

Java基础常见笔试题总结

以下是自己总结的一些Java常见的基础知识题&#xff0c;答案仅供参考&#xff0c;如有异议请指出。一直保持更新状态。 1.什么是Java虚拟机&#xff1f;为什么Java被称作是“平台无关的编程语言”&#xff1f; Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编…

各种机器学习开源项目精选TOP30

8800个机器学习开源项目为你精选TOP30&#xff01; 授权自AI科技大本营&#xff08;ID: rgznai100) 本文共图文结合&#xff0c;建议阅读5分钟。 本文为大家带来了30个广受好评的机器学习开源项目。 最近&#xff0c;Mybridge发布了一篇文章&#xff0c;对比了过去一年中机…

Tomcat控制台输出到文件

为什么80%的码农都做不了架构师&#xff1f;>>> 修改startup.bat call "%EXECUTABLE%" start %CMD_LINE_ARGS% 为 call "%EXECUTABLE%" run %CMD_LINE_ARGS% >> ..\logs\test.log 转载于:https://my.oschina.net/cccyb/blog/886047

常见算法详解(原理及代码实现Python版本)

文章目录前言1、冒泡排序2、选择排序3、插入排序4、希尔排序5、快速排序6、归并排序7、二分法查找总结前言 最近复习了下常见的算法&#xff0c;在这里手动再写一遍&#xff0c;权当加深自己的印象。代码实现用的是python3.6版本。 1、冒泡排序 原理&#xff1a; 冒泡排序&a…

[转载] 全方位提升网站打开速度:前端、后端、新的技术

原文地址&#xff1a;Building a Shop with Sub-Second Page Loads: Lessons Learned原文作者&#xff1a;Erik Witt译文出自&#xff1a;掘金翻译计划译者&#xff1a;luoyaqifei校对者&#xff1a;Romeo0906&#xff0c;L9m全方位提升网站打开速度&#xff1a;前端、后端、新…

20个顶级大数据软件应用程序

目录1. Domo2. Teradata Database3. Hitachi Vantara4. TIBCO公司的Statistica5. Panoply6. IBM Watson Analytics7. SAS Visual Analytics8. Sisense商业智能软件9. Talend的大数据工作室10. Cloudera11. MongoDB12. Vertica Analytics Platform13. SAP Vora14. Oracle Big Da…

MapTask、ReduceTask并行度决定机制

目录前言:1、mapTask并行度的决定机制2、ReduceTask并行度的决定总结&#xff1a; 目录 前言: MapTask的并行度决定map阶段的任务处理并发度&#xff0c;进而影响到整个job的处理速度。那么&#xff0c;MapTask并行实例是否越多越好呢&#xff1f;其并行度又是如何决定呢&am…

6大主流开源SQL引擎总结,遥遥领先的是谁?

根据 O’Reilly 2016年数据科学薪资调查显示&#xff0c;SQL 是数据科学领域使用最广泛的语言。大部分项目都需要一些SQL 操作&#xff0c;甚至有一些只需要SQL。本文就带你来了解这些主流的开源SQL引擎&#xff01;背景介绍 本文涵盖了6个开源领导者&#xff1a;Hive、Impala、…

Yarn在MapReduce中的工作机制

目录前言:1、YARN概述2、mapreduce&yarn的工作机制总结&#xff1a; 目录 前言: 在了解Yarn在MR中的作用的时候需要先了解Yarn是什么。 1、YARN概述 Yarn是一个资源调度平台&#xff0c;负责为运算程序提供服务器运算资源&#xff0c;相当于一个分布式的操作系统平台&…

长连接心跳机制理解

近期使用go 开发聊天室&#xff0c;使用到websocket常链接。 if err websocket.JSON.Receive(ws,&reply); err ! nil {log.Println(err)return } 我发现当连接断开的时候会走if里面&#xff0c;输出eof 这样就知道&#xff0c;客户端断开了连接。 但在之前使用workerman …

Hive的基本操作总结

文章目录目录前言&#xff1a;1、Hive基本操作1.1、DDL操作1.2、DML操作1.3、Hive Join总结:目录 前言&#xff1a; 对于Hive来说最重要的一点就是能够用Hql来进行数据分析。而Hql来处理数据比MapReduce方便很多&#xff08;原理是一样的&#xff0c;Hql底层转化为MapReduce来…

Hbase读写数据的原理解析

目录1、体系图写数据的流程&#xff08;参考上图&#xff09;&#xff1a;读数据的流程&#xff08;参考下图&#xff09;&#xff1a; 目录 1、体系图 针对上图的一些解释&#xff1a; 这里面数据分区&#xff08;region&#xff09;存储是为了查询方便&#xff08;即因为是…

Zookeeper的简介及命令行操作

目录前言1、Zookeeper简介2、Zookeeper结构3、Zookeeper常用的命令行操作 总结&#xff1a; 目录 前言 作为一款第三方的协调服务框架&#xff0c;ZK被应用在许多地方&#xff0c;如&#xff1a;Hbase中用于存储-ROOT表的位置信息&#xff1b;Storm中用于保存任务分配的信息、…

【python】pycharm启动 一直index,无法运行

花了几个小时找相关资料&#xff0c;按网上提供答案操作&#xff0c;依然没有解决, 最后让它自动更新完才好&#xff08;大概更新了十分钟 有固态情况&#xff09; 参考链接 pycharm启动后总是不停的updating indices...indexing? pycharm 启动后一直更新index的问题

Zookeeper集群角色分配原理

ZK内部存在Leader和Follower两个角色&#xff0c;那么这两种角色是怎样划分呢&#xff1f;或者说是怎么样被选举出来呢&#xff1f;以下将详细介绍ZK内部的选举机制。 ZK是通过内部的选举算法来选出Leader。&#xff08;服务器需要配置对应的ID和文件&#xff09;如下图所示&a…

2016大数据发展7大趋势

1.算法&#xff08;Algorithms&#xff09;的崛起 大数据已过时&#xff0c;算法正当道。数据已经成为一种商品&#xff0c;每个组织都能够收集和存储大量的数据。分析大数据也不再那么引人注目了。每个组织都可以聘用或培训大数据分析人员来了解数据模式。 2016年&#xff0c;…