浅析Python的web.py框架中url的设定方法


Posted in Python onJuly 11, 2016

网页中的数据在传递的时候有GET和POST两种方式,GET是以网址的形式传参数,在web.py中有着很好的匹配,如果我们配置以下的urls

urls =(
  '/','index',
  '/weixin/(.*?)','WeixinInterface'
  
  )

先不考虑/weixin/后面的东西,现在我们来写index的类

class index:
  def GET(self):
    i = web.input(name = 'kevinkelin',age = 100)     
    return render.index(i.name,i.age)

随便写一个index.html模板文件

$def with(name,age)
$if name:
  I just want to say <em>hello</em> to $name, he is $age years old
$else:
  <em>hello</em>,world!

当访问http://127.0.0.1:8080/ 此时没有传递name与age的值,由于我的GET函数里定义了默认的name与age的值,所以程序会将kevinkelin与26传递到模板中去得到以下的输出

I just want to say hello to kevinkelin, he is 100 years old

当访问http://127.0.0.1:8080/?name=yyx&age=26 即向GET函数中传递name = yyx and age = 26的时候得到以下的输出

I just want to say hello to yyx, he is 26 years old

 我们也可以不定义默认的的参数,即定义为空

i = web.input(name = None,age = None)

当访问http://127.0.0.1:8080/ 的时候将会得到 hello,world!的输出即模板中的else
但是如果你不定义name和age将会出错

i = web.input()

这是因为后面你将i.name与i.age分配到模板当中去,但是全局变量里又没有这两个变量,所以会报错
但有时我们想这样传递参数,不想加那个“?”这时我们得要更改urls规则

urls =(
  '/name=(.*)&age=(.*)','index',
  '/weixin/(.*?)','WeixinInterface'  
  )

重新写class index

class index:
  def GET(self,name,age):
    return render.index(name,age)

这里是将url的参数通过正则匹配然后传递到index类中的GET的参数中
当访问http://127.0.0.1:8080/name=yyx&age=26 时将得到

I just want to say hello to yyx, he is 26 years old

第二种方法看似简单,但其实不好控制,要求写的正则工作量加大了
如果我想知道到底有多少参数通过GET方式传递过来,我可以直接return 来看一下到底有哪些传递过来了
接下来看一下post来的数据:
我们可以制作一个简单的表单或者直接使用fiddler来构造数据进行POST传值 

def POST(self):
    data = web.data()    
    return data

浅析Python的web.py框架中url的设定方法

我想看一下得到的数据类型

return type(data)

得到的是<type 'str'>,也就是说web.py已经将post的数据转换成了str类型
那么我来试一下传递xml

<xml>
<ToUserName>yanxingyang</ToUserName>
<FromUserName>study_python</FromUserName>
<CreateTime>123456</CreateTime>
<MsgType>text</MsgType>
<Content>Just a test</Content>
</xml>

其实这个微信的XML格式做了一些更改,我来试着使用lxml对它进行解析

from lxml import etree
data = web.data()
xml = etree.fromstring(data)
content = xml.find(‘Content').text
return content

得到的结果很好

浅析Python的web.py框架中url的设定方法

Python 相关文章推荐
django批量导入xml数据
Oct 16 Python
python进阶_浅谈面向对象进阶
Aug 17 Python
Django原生sql也能使用Paginator分页的示例代码
Nov 15 Python
Python字典数据对象拆分的简单实现方法
Dec 05 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 Python
python 利用pandas将arff文件转csv文件的方法
Feb 12 Python
浅谈python的深浅拷贝以及fromkeys的用法
Mar 08 Python
Python的几种主动结束程序方式
Nov 22 Python
python中使用you-get库批量在线下载bilibili视频的教程
Mar 10 Python
浅谈pymysql查询语句中带有in时传递参数的问题
Jun 05 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
Jan 23 Python
python实现图片转字符画的完整代码
Feb 21 Python
深入解析Python的Tornado框架中内置的模板引擎
Jul 11 #Python
使用Python的Tornado框架实现一个Web端图书展示页面
Jul 11 #Python
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
Jul 11 #Python
Python的requests网络编程包使用教程
Jul 11 #Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
Jul 11 #Python
Python中的异常处理相关语句基础学习笔记
Jul 11 #Python
Python编写简单的HTML页面合并脚本
Jul 11 #Python
You might like
php报表之jpgraph柱状图实例代码
2011/08/22 PHP
PHP的autoload机制的实现解析
2012/09/15 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
PHP中替换键名的简易方法示例详解
2014/01/07 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
js+xml生成级联下拉框代码
2012/07/24 Javascript
jQuery中outerWidth()方法用法实例
2015/01/19 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
浅析AngularJS Filter用法
2015/12/28 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
2019/04/26 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
Python Django使用forms来实现评论功能
2016/08/17 Python
python去掉行尾的换行符方法
2017/01/04 Python
python爬取网页转换为PDF文件
2018/06/07 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
Python 中的 import 机制之实现远程导入模块
2019/10/29 Python
NumPy中的维度Axis详解
2019/11/26 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
Pycharm调试程序技巧小结
2020/08/08 Python
全面解析HTML5中的标准属性与自定义属性
2016/02/18 HTML / CSS
英国儿童图书网站:Scholastic
2017/03/26 全球购物
悬挂训练绳:TRX
2017/12/14 全球购物
班级聚会策划书
2014/01/16 职场文书
安全生产实施方案
2014/02/23 职场文书
求职意向书范文
2014/04/01 职场文书
大专生找工作自荐书
2014/06/10 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
小学生通知书评语
2014/12/31 职场文书