77范文网 - 专业文章范例文档资料分享平台

webpy(2)

来源:网络收集 时间:2019-04-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

def GET(self): raise web.seeother(?/sub app?) class saname: def GET(self, name): return name

app = web.application(urls, locals())

然后在main.py里加入suapp包的引用import subapp,在urls映射中添加一项映射“/sa”, subapp.app,然后用url地址http://your.domain.name/sa,相应的就是subapp包下的sa类,被重定向到saname类中,传递给saname的参数是sub app,因此最终页面上显示的是sub app字样。这里要注意的就是,在子程序中的url路径都是相对于子程序自身的相对路径,而不是从网站根开始的路径。

4模板

在向用户返回页面内容的时候,可以在GET或POST处理函数的return处返回html页面的代码,但是这样做显然很麻烦,这时候就需要使用模板了。这里的模板就有点像用Java写web程序时用的jsp,用return返回页面就有点像直接用servelet。

4.1创建模板

这里,我们先在项目中新建一个目录templates集中存放模板文件,便于管理。然后在templates下新建一个index.html文件,在新文件中写入如下代码: $def with (name)

Template Hi, $name

这是一个最简单的html页面代码。

4.2使用模板

然后在修改使用这个模板的类,比如说我们在main.py模块中的新写一个index类,入下: class index: def GET(self):

render=web.template.render(“templates”) return render.index(“Lisa”) 同时修改urls为: urls = (“/”, “index”)

这样,网站默认调用index类,进而使用index.html模板,打开浏览器查看结果,页面就会打印出Hello, Lisa的字样。

除此之外还有两种使用模板的方法,一是使用frender直接指定模板文件,GET函数最后两行改为:

render=web.template.frender(“templates/index.html”) return render(“Lisa”)

或者直接在代码里写出模板文件,如把GET最后两行改为: template = “$def with (name)\\nHello $name”

render = web.template.Template(template) return render(“Lisa”)

4.3模板含义

解释一下这个模板的含义:

在index.html第一行$def with (name)表示本模板接受一个名为name的参数,也就是对应index类中return render.index(“Lisa”)中的Lisa。

而render=web.template.render(“templates”)表示创建一个模板对象,模板是存放于templates目录下,然后就可以用所创建的render对象来访问相应的模板,比如templates目录下的index.html就是用render.index来表示(实际上是匹配寻找index.*文件,第一个匹配的就认为是所对应的模板文件),如果templates下还有个a目录,a目录下有个pagea.html,那么访问这个pagea模板就要用render.a.pagea的形式了。

4.4页面参数

页面接收的参数可以多于一个,也可以没有,如果不需要参数,则就不需要$def with (name)这样的代码,删除掉这一句,同时修改模板中对name变量的引用,修改index类最后一句为return render.index()就可以了。

如果有参数,那么模板的第一行代码就必须是这个$def with (…),可以多于一个参数,比如是这样$def with (gname, fname)。模板下面的那行字改为Hi, $gname $fname。同时Index类GET返回的时候赋予对应两个参数return render.index(“Lisa”,”Hayes”)。这样,页面最后显示的是打印出Hi, Lisa Hayes的字样。

另外,模板接受的这个参数也可以是一个元组,比如像下面这样: return render.index((“Lisa”,”Hayes”)) 在模板中可以如下以元组方式访问参数数据: Hi, $name[0] $name[1]

4.5模板语法

模板语法与python语法基本一致,主要差别可以从上面的代码中看到,要使用到$符号表明这不是文本而是模板代码。也就是每当用到程序代码、对象的时候就必须用$来与html代码和页面显示文本相区别。

4.5.1对象赋值

向对象赋值时需要在$与对象名之间留空格,如为一个名为vara的字符串对象赋值apple的代码为$ vara = “apple”。

另外,对象赋值语句必须独占一行,前面或后面有其他代码则会程序出错。

4.5.2对象引用

引用对象的时候直接使用$+对象名的形式,如$vara。

另外引用对象时还可以用{}或()将对象进行明确的分组,如$(vara)s就会表示apples,如果没有括号,程序则会把$ varas作为一个整体,也就变成对varas对象的引用而发生错误。 另如果向如下定义两个数字型对象: $ varb = 1 $ varc = 2

然后希望计算两个值的和,如果用$varb+$varc的形式,页面上只会得到1+2而不是3,这时也就需要把两个对象放在括号里,如$(varb+varc)的形式才能得到正确答案3。

4.5.3注释

模板中支持单行注释,以$#符号开始到行末都是注释内容。 $#This is comment

注释前面可以有其他内容,但是不可以有赋值代码。 如下代码是正确的: Hi $#This is comment

但下面的则会出错:

$ vara = “apple” $#This is comment

4.5.4Filtering 4.5.5打印$符号

由于$符号在模板中有特殊用途,所以在页面上输出$时需要进行转义操作,用连续两个$表示在页面上输出一个$符号。 Can you lend me $$50?

4.5.6控制代码(循环、条件判断)

模板中支持for、while、if、elif、else,用法与在python一致,只是控制代码行要以$开始(包括break和continue命令),$开始的代码行中对象不需要在前面再加$符号,同时要注意缩进规则,如:

$for i in range(10): line:$i

但要是第二行代码与for行代码写在同一行中,i对象前还是需要有$的: $for i in range(10):line:$i
While循环: $while a: hello $a.pop() if else判断: $if times > max:

Stop! In the name of love. $else:

Keep on, you can do it.

在for循环中,有一组内置的变量可以使用,非常方便,分别如下所示:

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库webpy(2)在线全文阅读。

webpy(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/608157.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: