django示例_Django 模板

django示例_Django 模板前言目前市面上有非常多的模板系统,其中最知名最好用的就是DTL和Jinja2。DTL是DjangoTemplateLanguage三个单词的缩写,也就是Django自带的模板语言。当然也可以配置

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

目前市面上有非常多的模板系统,其中最知名最好用的就是DTLJinja2DTLDjango Template Language三个单词的缩写,也就是Django自带的模板语言。当然也可以配置Django支持Jinja2等其他模板引擎,但是作为Django内置的模板语言,和Django可以达到无缝衔接而不会产生一些不兼容的情况。
 

DTL与普通的HTML文件的区别:

DTL模板是一种带有特殊语法的HTML文件,这个HTML文件可以被Django编译,可以传递参数进去,实现数据动态化。在编译完成后,生成一个普通的HTML文件,然后发送给客户端。
 

渲染模板

渲染模板有多种方式。这里讲下两种常用的方式。

  1. render_to_string:找到模板,然后将模板编译后渲染成Python的字符串格式。最后再通过HttpResponse类包装成一个HttpResponse对象返回回去。示例代码如下:
 from django.template.loader import render_to_string
 from django.http import HttpResponse
 def book_detail(request,book_id):
     html = render_to_string("detail.html")
     return HttpResponse(html)
  1. 以上方式虽然已经很方便了。但是django还提供了一个更加简便的方式,直接将模板渲染成字符串和包装成HttpResponse对象一步到位完成。示例代码如下:
 from django.shortcuts import render
 def book_list(request):
     return render(request,'list.html')

 

模板查找路径配置

在项目的settings.py文件中。有一个TEMPLATES配置,这个配置包含了模板引擎的配置,模板查找路径的配置,模板上下文的配置等。模板路径可以在两个地方配置。

  1. DIRS:这是一个列表,在这个列表中可以存放所有的模板路径,以后在视图中使用render或者render_to_string渲染模板的时候,会在这个列表的路径中查找模板。
  2. APP_DIRS:默认为True,这个设置为True后,会在INSTALLED_APPS的安装了的APP下的templates文件加中查找模板。
  3. 查找顺序:比如代码render('list.html')。先会在DIRS这个列表中依次查找路径下有没有这个模板,如果有,就返回。如果DIRS列表中所有的路径都没有找到,那么会先检查当前这个视图所处的app是否已经安装,如果已经安装了,那么就先在当前这个app下的templates文件夹中查找模板,如果没有找到,那么会在其他已经安装了的app中查找。如果所有路径下都没有找到,那么会抛出一个TemplateDoesNotExist的异常。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166156.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月7日 上午7:36
下一篇 2022年8月7日 上午7:46


相关推荐

  • 《shell脚本学习指南》自学笔记——入门

    《shell脚本学习指南》自学笔记——入门这个是我自己自学的一点笔记和心得 如果有什么错误请大家指出 谢谢 1 一个简单的脚本 who 列出登录的用户 下面利用管道 who wc l 将列出登录的用户数量 who 的输出 成了 wc 的输入 下一步 将管道转变为独立的命令建立管道文件 用 cat 复制终端的输入 catnusers 然后写入内容 who wc l 以 D 作

    2026年3月17日
    2
  • 无序链表排序_双向链表排序算法

    无序链表排序_双向链表排序算法需求给定一个无序的链表,输出有序的链表。分析链表排序比较特殊,由于不连续的性质,所以在进行排序的时候要引入外排思想,因此归并排序或者多路归并就成为了排序的选择。归并排序分为拆分、合并两个阶段:1.拆分需要拆分出链表中间节点,并赋值NULL阶段,形成两个独立的链表,直到拆分成单个节点为止。2.合并由于此时没个链表都为单节点,所以实质上是个有序链表合并问题。代码下面

    2022年10月11日
    4
  • AI应用公司ARR破亿速度惊人:从卖能力到卖结果,商业逻辑重塑

    AI应用公司ARR破亿速度惊人:从卖能力到卖结果,商业逻辑重塑

    2026年3月16日
    1
  • 【基础知识】4、python-opencv 入门基础知识

    【基础知识】4、python-opencv 入门基础知识和 Python 一样 当前的 OpenCV 也有两个大版本 OpenCV2 和 OpenCV3 相比 OpenCV2 OpenCV3 提供了更强的功能和更多方便的特性 不过考虑到和深度学习框架的兼容性 以及上手安装的难度 这部分先以 2 为主进行介绍 如果不考虑视频应用 以上三个就是最核心和常用的模块了 NearestNeigh 用于在多维空间进行聚类和检索 经常和关键点匹配搭配使用 regularizati 算法从使用的角度来看 和 OpenCV2 相比 OpenCV3 的主要变化是更多的功能和更细化的模块划分

    2026年3月17日
    2
  • 预测算法——指数平滑法

    预测算法——指数平滑法nbsp 目录 1 指数平滑定义及公式 2 一次指数平滑 3 二次指数平滑 4 三次指数平滑 5 指数平滑系数 的确定 1 指数平滑的定义及公式 nbsp nbsp nbsp nbsp 产生背景 指数平滑由布朗提出 他认为时间序列的态势具有稳定性或规则性 所以时间序列可被合理地顺势推延 他认为最近的过去态势 在某种程度上会持续的未来 所以将较大的权数放在最近的资料 nbsp nbsp nbsp nbsp 基本原理 指数平滑法是移动平均法中的一种 其特点在于给过去的

    2026年3月18日
    2
  • discuz的diy功能介绍

    discuz的diy功能介绍

    2022年2月23日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号