python bottle框架 运维_python bottle 框架基础教程:模板继承 | linux系统运维

模板继承主要使用以下二个语句

%include语句

%rebase语句

%include 是用来加载其它模板用的,后面可带需要传递给模板的数据,如 % include('menu.tpl')

%rebase 是用来继承上层模板用的,简单地理解,就是把当前这个模板,嵌套到上层模板去,后面可传递参数到上层模板中去。如:%rebase base title='任务列表',position='任务列表',managetopli='active open'。被继承的模板,需要留下用来加载模板的位置,即类似占位符,用%include告诉模板,这个位置可被其实模板嵌套。

看不明白?请看以下例子:

先写一个简单的python后端代码,首页(访问服务器的时候)只渲染index.tpl模板,不加其它数据了

看得懂以下main.py的代码吧?特别是@route('/'),如果不懂,可看python bottle 框架基础教程:路由

[root@linuxyw bottle]# cat main.py

#/usr/bin/env python

#coding=utf-8

from bottle import route, run

from bottle import template

@route('/')

def index():

return template('index')

run(host='0.0.0.0', port=8080, debug=True)

再写一个base.tpl,这个我定义为最底层的模板,这个模板一般是被其它模板继承的,代码主要是所有模板中代码相同的部分,因此这个继承功能,主要也是为了减少重复的代码,加快开发效率。

[root@linuxyw bottle]# cat views/base.tpl

{{get('title','linux系统运维')}}

%include('memu.tpl')

%include

{{get('title','linux系统运维')}},这个语法,由上篇文章有讲到,忘记的可重看python bottle 框架基础教程:模板语法,意思就是获取从后端获取返回来的title值,如果后端没有返回title,那模板就给它赋值一个默认值,这个值叫'linux系统运维',如果有传递这个值,那就会按传递过来的值定义,而不再用linux系统运维。在后面的模板中,我们会看到,会给title传递一个值过来。

%include('memu.tpl'),意思是在base.tpl中,加载一个menu.tpl模板。

menu.tpl代码:

[root@linuxyw bottle]# cat views/memu.tpl

  • python运维开发
  • linux系统运维
  • PHP网页开发
  • C语言底层开发

最后,来看看index.tpl模板的代码,这代码里,会把base.tpl继承过来

%rebase base title='python bottle 模板继承'

哈喽,我是首页,我这的代码很简单,就这么几行,但你要是在浏览器中打开源代码看看,

可就不止这几行了,而且包括了base.tpl和memu.tpl的所有代码,打开看看?

%rebase base title='python bottle 模板继承'  用%rebase来继承base.tpl模板,继承的时候,不需要加.tpl后缀,后面可带需要传递给base模板参数,如我就传递了title='python bottle 模板继承',如果有更多需要传递的参数,可用逗号分开,传递多个参数。这个title对应的是base.tpl中的

{{get('title','linux系统运维')}}

用浏览器访问,看看效果:

bottle模板继承

再看看它的源代码:

python bottle 模板继承

  • python运维开发
  • linux系统运维
  • PHP网页开发
  • C语言底层开发

哈喽,我是首页,我这的代码很简单,就这么几行,但你要是在浏览器中打开源代码看看,

可就不止这几行了,而且包括了base.tpl和memu.tpl的所有代码,打开看看?

如果有不懂的,可以看bottle官网文档

官方文档:http://www.bottlepy.org/docs/dev/index.html

SVN请跳转至:教程总目录

这些代码已提交到SVN中,有需要的朋友可在SVN下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值