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

模板语法类似于 Python 的语法。它要确保语句块的正确缩进,所以你在写模板的时候无需担心会出现

缩进问题。详细的语法描述可看 SimpleTemplate模板引擎 。

虽然 Python 是一门强大的语言,但它对空白敏感的语法令其很难作为一个模板语言。 SimpleTemplate

移除了一些限制,允许你写出干净的,有可读性的,可维护的模板,且保留了 Python 的强大功能。

在上章《python bottle 框架基础教程:模板使用 》例子中学习到了 {{...}} 语句的用法。只要在 {{...}} 中的 Python 语句返回一个字符串或有一个字符串的表达形式,它就是一个有效的语句。

嵌入 Pyhton 代码

一行以 % 开头,表明这一行是 Python 代码。它和真正的 Python 代码唯一的区别,在于你需要显式地在末尾添加 %end 语句,表明一个代码块结束。这样你就不必担心 Python 代码中的缩进问题,SimpleTemplate模板引擎的 parser 帮你处理了。不以 % 开头的行,被当作普通文本来渲染。只有在行首的 % 字符才有意义,可以使用 %% 来转义。

python后端代码示例:

[root@linuxyw bottle]# cat main.py

#/usr/bin/env python

#coding=utf-8

from bottle import route, run

from bottle import template,view

@route('/login')

def login():

return template('login')

@route('/info')

@view('info')

def info():

name = '戴儒锋'

age = '30'

blog = 'www.linuxyw.com'

qq = '63780668'

book = ['python','linux','php']

price = {'pc':4000,'phone':2000,'bike':600}

data = {'tname':name,'tage':age,'tblog':blog, 'tqq': qq,'tbook':book,'tprice':price,'tnum':''}

return data

run(host='0.0.0.0', port=8080, debug=True)   #开启服务

模板代码:

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

会员中心

会员信息

如果tname后端有返回值(即非空值),就显示出来

%if tname:

姓名:{{tname}}

%end

也可以用if else语句

%if tnum:

tnum:{{tnum}}

%else:

tunm没有定义

%end

也可以用if xx == 'yy'语句

%if tage == '30':

哈哈,你老了!

%else:

你年轻吗?

%end

如果tnum没有定义那就用默认值666::{{get('tnum','666')}}

所有的书名用for循环遍历:

%for col in tbook:

{{col}}

%end

浏览器访问后显示(http://ip+8080/info):

1fafe3bc58769809b1bc06aaf096a2aa.png

bottle模板效果

总结:

模板上的语法,有点类似于python中的语法,注意用%开头,end结尾,当用end结尾时,不需要加冒号

%if tname,用这个语法时,首先需要python后端有定义这个tname变量,即在return时,要有定义,要不然就会出错;如果return没定义的变量,则需要用{{get('tnum','666')}}这种方式,这个语法是如果检测到一个没有定义的变量时,就直接定义这个变量,并赋值666给它,避免模板语法出错;%for循环用起来和python类似了。

更多的语法,可以查看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、付费专栏及课程。

余额充值