jinja2模板html,jinja2模板、框架和html是什么关系?

本文探讨了HTML模板的基础,包括HTML、Jinja2在Flask中的应用,以及AngularJS的ng-template带来的前端分离。讨论了不同模板引擎如Jade和Transparency,并强调了模板在前后端协作中的作用和选择多样性。
摘要由CSDN通过智能技术生成

两天多了没人回答,很冷清啊。

所有的页面显示都是HTML,无论是原生HTML或者说是此基础上的模板或者其它,最终的形式都是HTML。

然后这些所谓的模板,就是在原本单一的HTML 基础之上做了许多便于开发的事情。

比如逻辑判断,比如运算,比如过滤器。当然了,还有比较重要的数据绑定。

数据绑定的功能得到的结果就是写页面,相似的页面仅需提供一个“模板”,相应的地方丢进去需要的数据即可,此处的“模板”是一个可以理解为数据容器,相当于商场柜台,商场本身已经提供了展示柜,即为此处“模板”,而里面需要展示的东西即为值。

这也就使得一个网站 “动态” 化了。

然后回到你问的模板,你所提到的‘网上的“html模板”’,并不知道你指代的是什么。

Jinja2 是模板,Flask这个框架把它整合在内,对于一种很简单的使用情况,函数返回到相应模板并给定需要传递的值,页面即可获取并解析、显示。

如下代码:

@app.route('/')

def index():

return render_template("index.html", data="world")

以及

Hello {{ data }} !

假设是这种使用情形下需要前后端分离,需要做好的就是前后端约定好需要传递、接受的数据即可。

还有一种模板,纯JS的,如AngularJS 的 ng-template。

它所做的事情,也是将获取到的值传递给页面并显示出来。只是多了很多额外的功能。

比如自定义指令:

var app = angular.module('MyApp', [], function(){});

app.directive('helloWorld',

function() {

return {

restrict: 'E',

template: '

Hello World!
'

};

})

以及

这里的hello-world标签显然是HTML自身所不具备的,但是通过以上自定义指令,通过Angular解析即可使用。

而这种使用情境下的前后端分离,体现在了服务端仅仅提供数据,服务端不关心数据如何进一步处理,如何解析到页面。

这样的话,前端更近一步的分离出来了,到了可以不关心后台使用何种语言,无论Python、Java或者其它,只要能提供数据即可。

对于Flask里用到的Jinja2,AngularJS 里的ng-template,均可以理解为框架已整合好,开箱即用的。

基于这种情况必然会有人对此不满不喜欢而希望有其它的东西,因而必然有其它模板。

比如Jade,一种以Python风格写HTML的模板,比如Transparency。

那么,问题来了,假如没有这些模板,你该怎样去写页面呢?

另外,以上的回答,可能全都是错的,所以需要你自己去考证, XD。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值