网页中的数据在传递的时候有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 hello to $name, he is $age years old

$else:

hello,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

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

return type(data)

得到的是,也就是说web.py已经将post的数据转换成了str类型

那么我来试一下传递xml

yanxingyang

study_python

123456

text

Just a test

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

from lxml import etree

data = web.data()

xml = etree.fromstring(data)

content = xml.find(‘Content').text

return content

得到的结果很好

python em和web_浅析Python的web.py框架中url的设定方法相关推荐

  1. win8下Python学习——搭建web.py框架

    1.安装python2.7.3 ,下载 2.添加环境变量,如下图 3.安装web.py,下载 解压web.py的安装包,如下 进入cmd,运行以下命令,web.py框架就安装好了 4.测试一下web. ...

  2. python web.py框架 无法正常打开0.0.0.0:8080网页

    最近意外用到了web.py框架,才发现这家伙比Django还轻量,还简洁.但是开局就碰到了问题. import weburls = ('/(.*)', 'hello' ) app = web.appl ...

  3. nginx连接uwsgi使用web.py框架构造pythonweb项目

    2019独角兽企业重金招聘Python工程师标准>>> 相关页面: http://webpy.org/install http://uwsgi-docs.readthedocs.or ...

  4. Spring Boot Web应用程序中注册 Servlet 的方法实例

    Spring Boot Web应用程序中注册 Servlet 的方法实例 本文实例工程源代码:https://github.com/KotlinSpringBoot/demo1_add_servlet ...

  5. python网页制作web_使用python创建web静态网站

    建立Django项目 打开pyCharm企业版软件,创建一个Django项目,其中Django是一个Web框架,用于帮助开发交互式网站的工具.生成项目文件如下图所示: image.png 创建网站主页 ...

  6. python文件流读取二进制_Python使用web.py从POST请求中提取二进制文件

    I am developing an API that allows outside clients to send a binary file which will be processed. my ...

  7. web.py框架入门

    在使用微信搭建公众平台的时候,使用的是web.py这个方便简单的框架,学习一下. 框架文档:http://webpy.org/docs/0.3/tutorial.zh-cn  按照文档的内容写一遍程序 ...

  8. Python + Selenium,带你分分钟搭建 Web 自动化测试框架!

    在程序员的世界中,一切重复性的工作,都应该通过程序自动执行.「自动化测试」就是一个最好的例子. 随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无法满足如今的业务 ...

  9. java工程编辑器中文乱码_Java Web开发项目中中文乱码解决方法汇总

    Java Web项目中,解决中文乱码方法总结如下 第一种情况:调用jsp页面中文显示乱码问题描述:通过浏览器调用jsp页面,在浏览器中显示的中文内容出现乱码. 解决方法:首先确认本jsp在编辑器中保存 ...

  10. 一些企业个人网银的U盾或是usbkey在web(IE)网页中无法使用的解决方法

    因为我电脑是win10的系统默认的是IE11的浏览器,对于一些老的U盾或是usbkey很蛋疼. 折腾了几个月每次都是用其他di电脑才能登陆,从检测系统到检查usbda到驱动 最后发现是因为ie内核的原 ...

最新文章

  1. DPDK — App 的 Makefile 解析
  2. 两列高度自适应(转)
  3. shujufenxi : shenzhenditie
  4. hadoop安装部署(伪分布及集群)
  5. java中jxl飘红_jxl导出excel文件,部署到tomcat中就会报错,为什么呢,求解!
  6. oracle代码连接,Oracle连接核心知识点
  7. 腾讯校园招聘笔试 2019-8-17 第五题
  8. celery java_Celery(分布式任务队列) 的使用方法总结
  9. oracle 输出入参怎么抛异常,oracle 存储过程入参 pids , varchar2 类型,where in 条件 会抛异常...
  10. java中实例化代码块_Java面向对象--代码块(初始化块)和内部类
  11. Convert Sublime Text 2/3 to Licensed Version
  12. 计算机c盘 用户,如何转移Windows 7系统C盘的用户文件夹
  13. 开篇记(好记性不如烂笔头)
  14. C Primer Plus第六版第五章运算符,表达式,语句源码
  15. [note] 电磁场和微波理论课组(一)——电磁学(磁学部分)
  16. javapoet动态生成java代码
  17. adb bugreport -- Failed to get bugreportz version
  18. 块设备驱动、bio理解
  19. 斯坦福NLP名课带学详解 | CS224n 第11讲 - NLP中的卷积神经网络(NLP通关指南·完结)
  20. C/C++快速入门图形化教学法简介(目录)

热门文章

  1. 编写自己的tomcat, 并运行tomcat源码于eclipse中
  2. 用户级线程和内核级线程
  3. redis实现订单过期取消
  4. response.sendRedirect()和request.getRequestDispatcher().forward(request,reponse)的区别
  5. 把word excel ppt 导入到右键快捷菜单中
  6. linux管理员基础知识
  7. Server.MapPath()用法
  8. python+requests+pytest_Python+Requests+Pytest 在window下的安装(附pip升级过程遇到的问题)...
  9. v割与邮票孔_pcb板V割和邮票孔的区别
  10. 使用BCC工具获取Linux内核空间read/write操作的文件名