• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 浅析Python的web.py框架中url的设定方法

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python3 web.py,python web.py,python 安装web.py,python web2py,python web.py下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

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

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

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

随便写一个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!
</div>

当访问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
</div>

当访问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
</div>

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

i = web.input(name = None,age = None)
</div>

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

i = web.input()
</div>

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

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

重新写class index

 class index:
  def GET(self,name,age):
    return render.index(name,age)
</div>

这里是将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
</div>

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

def POST(self):
    data = web.data()    
    return data
</div>

2016711194530065.png (698×539)

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

return type(data)
</div>

得到的是<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>
</div>

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

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

得到的结果很好

2016711194622132.png (244×124)

</div>

您可能想查找下面的文章:

  • 详解python3实现的web端json通信协议
  • 详解python3实现的web端json通信协议
  • 浅析Python的web.py框架中url的设定方法
  • Python3控制路由器——使用requests重启极路由.py
  • Python3实现Web网页图片下载
  • 详细解读Python的web.py框架下的application.py模块
  • 详细解读Python的web.py框架下的application.py模块
  • 安装Python的web.py框架并从hello world开始编程
  • 安装Python的web.py框架并从hello world开始编程

相关文章

  • 用Python的Flask框架结合MySQL写一个内存监控程序
  • python模拟登录百度贴吧(百度贴吧登录)实例
  • python插入排序算法实例分析
  • python登录pop3邮件服务器接收邮件的方法
  • python在多玩图片上下载妹子图的实现代码
  • python中Genarator函数用法分析
  • python实现html转ubb代码(html2ubb)
  • Python datetime时间格式化去掉前导0
  • Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
  • 在Django的模板中使用认证数据的方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 详细解读Python的web.py框架下的application.py模块
    • Python实例之wxpython中Frame使用方法
    • 在Python中操作文件之truncate()方法的使用教程
    • python文件读写操作与linux shell变量命令交互执行的方法
    • python实现每次处理一个字符的三种方法
    • python 文件与目录操作
    • Python发送Email方法实例
    • Python下线程之间的共享和释放示例
    • 对于Python中线程问题的简单讲解
    • Python中利用函数装饰器实现备忘功能

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有