Django的模版引擎与模版使用

Django的模版引擎与模版使用

模版引擎是模版响应的后端。模版指的是HTML、css,js等相关的文件。模版引擎是将这些表示层文件与数据相整合在一起,然后将整合后的数据给到响应类型判断采用一次性响应还是流响应,确定响应类型后将模版加工后的数据反馈给用户。

Django支持两种模板引擎,Django模版引擎和Jinja2模版引擎。在settings.py文件中对模版引擎进行配置(BACKEND)。模版目录在列表中的顺序是搜索模版的顺序。

文件中是这样写的:

TEMPLATES = [
    {
        ‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
        ‘DIRS‘: [os.path.join(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‘,
            ],
        },
    },
]

BACKEND的键值是模版引擎的配置,DIRS的键值是模版目录。

模版的查找:

使用get_template(template_name)方法查找,它是Template类。template_name是带查找模版的名称。它会在模版目录列表中,依次查找某个模版,直到找到并返回Template类,如果没有找到,则抛出TemplateDoesNotExist异常。

将模版文件表达为Template类型,进行数据加工,渲染为可以响应给用户的既有模版表现,又有数据内涵的字符串的过程称之为渲染。

渲染语句:Template.render(context,request)中的Context参数是字典类型,用于加载到模版中的内容,request参数是HTTP请求。

如果有静态的模版文件并不需要与数据整合在一起时,则不需要渲染。

实例代码:

Views.py

from django.shortcuts import render,HttpResponse
from django.template import Template,Context
def test(request):

    template= Template("<h1>this test name is {{ name}}</h1>")

    context = Context({"name":"ceshi"})

    return HttpResponse(template.render(context))

  

在urls.py的urlpatterns列表里加上path(‘test/‘,views.test)

原文地址:https://www.cnblogs.com/xshan/p/8298320.html

时间: 2024-11-02 15:21:52

Django的模版引擎与模版使用的相关文章

第六章:FLASK模版引擎以及模版方法

一,上节回顾: 1) 什么是蓝图? 2) 为什么用蓝图? 3) 怎么实例化一个蓝图? 4) 怎么将蓝图注册到flask的核心对象上? 二,什么是模版引擎? 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档.(摘自 百度百科) 三,模版引擎都有什么?flask用的是什么模版引擎? 模版引擎有很多种,像 PHP(smarty)  Python(Janjia,marco)  Java(

Django基础(路由、模版、视图)

Django 路由控制 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个URL调用哪一段逻辑代码对应执行 1.)简单的路由配置 1 from django.conf.urls import url 2 3 urlpatterns = [ 4 url(正则表达式, views视图函数,参数,别名), 5 ] 正则表达式:一个正则表达式字符串 views视图函数:一个可调用

如何在前端模版引擎开发中避免使用eval函数

前段时间,想着自己写一个简单的模版引擎,便于自己平时开发demo时使用.于是根据自己对模版引擎的理解,定义自己的模版格式,然后,根据自己定义的格式,编写处理函数,将模版标签中的字符串,解析成可执行的字符串,然后再用eval函数执行该可执行的字符串. 然后问题就出现了!eval等价于evil! 为什么呢?各大js权威书籍上都不提倡使用eval.下面我详细的解释一下为什么不提倡. 首先,大家需要知道,js并不是一门解释型语言.它和其他大家熟知的编程语言(c,java,c++)一样,是编译型语言.但是

前端数据模版引擎的总结

模板的工作原理可以简单地分成两个步骤:模板解析(翻译)和数据渲染.这两个步骤可分别部署在前端或后端来执行.如果放在后端执行,则是像Smarty,FreeMarker这样的后端模板引擎,而如果放在前端来执行,则是我们要探讨的前端模板. FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写,模板用servlet提供的数据动态地生成 HTML,模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度.这里不再对后端模版进行描述. 前端模版提高了前端开发

Express模版引擎hbs备忘

最近几天折腾了下express,想找个合适的模版引擎,下面是一些折腾过程的备忘 选择标准 选择一门模版语言时,可能会考虑的几点 语法友好(micro tmpl那种语法真是够了) 支持模版嵌套(子模版的概念) 支持模版继承(extend) 前后端共用 有容错处理(最好定位到具体出错位置) 支持预编译(性能好) 注意到hbs,似乎满足大部分的需求:https://github.com/donpark/hbs getting started demo地址:https://github.com/chyi

Spring整合Velocity模版引擎

1. 首先通过pom.xml自动加载velocity扩展包到工程: 1 <dependency> 2 <groupId>velocity</groupId> 3 <artifactId>velocity</artifactId> 4 <version>1.5</version> 5 </dependency> 2. 然后在自动装载bean的xml里边添加如下配置: 1 <bean id="vel

Symfony2模版引擎使用说明手册

一.基本使用 {{ demo }}输出一个demo变量; {{% func %}}通常是包含一个twig函数例如 for; 举个for循环的例子: {{% for i in 0..10 %}} <em>{{ i }}</em> {{% endfor %}} 当然也可以打印对象,例: {{% for user in users %}} <span>user.username</span> {{% endfor %}} 注:users是从控制器中传来的对象参数

【转】T4模版引擎之基础入门

额,T4好陌生的名字,和NuGet一样很悲催,不为世人所熟知,却又在背后默默无闻的奉献着,直到现在我们项目组的人除了我之外,其它人还是对其豪无兴趣,基本上是连看一眼都懒得看,可怜的娃啊... T4(Text Template Transformation Toolkit)是微软官方在VisualStudio 2008中开始使用的代码生成引擎.在 Visual Studio 中,“T4 文本模板”是由一些文本块和控制逻辑组成的混合模板,它可以生成文本文件. 在 Visual C# 或 Visual

laravel 模版引擎使用

laravel 模版引擎以 @标签 开头,以 @end标签 结尾,常用有 foreach foreachelse if for while等 1)foreach 和 foreachelse 差不到,区别就是 foreachelse 还有一个@empty 分支,当循环的变量为空时执行 @foreach ($obj as $key=>$value) {{--循环体--}} @endforeach @foreachelse ($obj as $key=>$value) {{--循环体--}} @em