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

webpy(4)

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

globals参数中传递的是一个字典,key以字符串表示模块在模板中使用时的名称,value部分就是这个要在模块中使用的模块或对象的真实名称了。

最后在要使用此模块的模板中就可以用$m1来引用此模块了。比如在index.html中添加下面一行代码:

$m1.hello_from_m1(gname)

就会调用module1中的hello_from_m1函数,在页面上打印出: hello Lisa, this is module1

4.9在web.py模板中使用jQuery

在jQuery中$也是一个关键字,这样的话如果在模板中使用jQuery就会冲突,这时候只需要用$$做一下转义就可以了,比如:

5用户输入

在web.py中,要响应用户使用GET或POST方法向服务器提交数据需要用到web.input方法。Input方法生成一个web.storge对象,其中的数据以字典形式存在,其键值对就是在GET和POST时对应的参数名和参数值。

5.1GET

我们先从GET方法开始,以http://your.domain.name/input?gname=Lisa&fname=Hayes 的形式提交数据。

在这里也就是有两个参数,分别为gname和fname,传递给服务器的值分别为Lisa和Hayes。 为了响应这个请求,我们在main.py中新建个类inputpage: class inputpage: def GET(self):

render=web.template.render(“templates”,base=”layout”) input_data=web.input(gname=”\

return render.inputpage(input_data.gname,input_data.fname)

在创建input对象的时候赋给参数的值是作为链接中没有此参数值的时候的缺省参数值。 当然别忘了修改urls对象: urls = (“/”, “index”, “/input”, “inputpage”)

新建Inputpage.html模板,这个模板也作为layout.html的内容嵌入,其中写入: $def with(gname,fname) $var title:This is inputpage.html hi, $gname $fname

刷新页面,就会根据fname和gname的参数值打印出响应的文本。

5.2POST

然后我们用POST方法来提交数据,也就是用form。 把刚才的用的inputpage.html改成以下内容: $def with(gname,fname) $var title:This is inputpage.html hi, $gname $fname

这里有一个form,其中有两个文本框用于输入文本内容,并将这两个文本框中的值作为gname和fname参数的值以POST模式提交给input页面。

同时把inputpage类的GET函数改成POST函数,内容不动,只是把函数的名字改一下就行。 然后用http://your.domain.name/input 访问这个新页面,在两个文本输入框中输入文本,点击submit按钮,看看页面发生什么变化。

5.3上传文件

首先创建一个新的模板页面,叫做upload.html,其中写入如下代码: $def with(message)

upload


$message

也就是在页面里放置一个上传文件的form,从浏览器中选择要上传的文件,点击提交按钮将文件提交给服务器,由本页面的对应post请求处理函数处理这个上传文件。 那么对应着我们就在main.py中新建一个upload类: class upload: def GET(self):

render=web.template.render(“templates”) return render.upload(“”) def POST(self):

render=web.template.render(“templates”)

x = web.input(myfile={})

filedir = “./” #上传文件保存的目录 if “myfile” in x:

filepath=x.myfile.filename.replace(?\\\\?,'/?) # 将windows格式的路径分隔符\\转换为unix格式的/ filename=filepath.split(?/?)[-1] # 从文件的完整路径中取出单独的文件名 fout = open(filedir +?/'+ filename,?wb?) # 创建上传保存的文件 fout.write(x.myfile.file.read()) # 把上传的文件写入指定的文件中 fout.close() # 关闭文件对象,上传完毕 return render.upload(“upload succeed.”)

GET函数也就是显示上面的那个模板,在页面中提交上传请求后就由POST函数来处理,将上传的文件保存在filedir目录下,在这里也就是网站的根目录下。要注意的是fout = open(filedir +?/'+ filename,?wb?) 这一句中,文件类型参数应该是”wb”,而cookbook中的是”w”,也就是按照文本格式处理,结果上传的文件会被修改,大概就是回车换行处理出的问题,而换成二进制处理文件就正常了。 限制上传文件大小

Web.py中可以利用cgi模块来限制上传文件的大小。 import cgi

cgi.maxlen = 10 * 1024 * 1024 # 10MB class upload: def GET(self):

render=web.template.render(“templates”) return render.upload(“”)

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

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