python em和web_浅析Python的web.py框架中url的设定方法
网页中的数据在传递的时候有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的设定方法相关推荐
- win8下Python学习——搭建web.py框架
1.安装python2.7.3 ,下载 2.添加环境变量,如下图 3.安装web.py,下载 解压web.py的安装包,如下 进入cmd,运行以下命令,web.py框架就安装好了 4.测试一下web. ...
- python web.py框架 无法正常打开0.0.0.0:8080网页
最近意外用到了web.py框架,才发现这家伙比Django还轻量,还简洁.但是开局就碰到了问题. import weburls = ('/(.*)', 'hello' ) app = web.appl ...
- nginx连接uwsgi使用web.py框架构造pythonweb项目
2019独角兽企业重金招聘Python工程师标准>>> 相关页面: http://webpy.org/install http://uwsgi-docs.readthedocs.or ...
- Spring Boot Web应用程序中注册 Servlet 的方法实例
Spring Boot Web应用程序中注册 Servlet 的方法实例 本文实例工程源代码:https://github.com/KotlinSpringBoot/demo1_add_servlet ...
- python网页制作web_使用python创建web静态网站
建立Django项目 打开pyCharm企业版软件,创建一个Django项目,其中Django是一个Web框架,用于帮助开发交互式网站的工具.生成项目文件如下图所示: image.png 创建网站主页 ...
- python文件流读取二进制_Python使用web.py从POST请求中提取二进制文件
I am developing an API that allows outside clients to send a binary file which will be processed. my ...
- web.py框架入门
在使用微信搭建公众平台的时候,使用的是web.py这个方便简单的框架,学习一下. 框架文档:http://webpy.org/docs/0.3/tutorial.zh-cn 按照文档的内容写一遍程序 ...
- Python + Selenium,带你分分钟搭建 Web 自动化测试框架!
在程序员的世界中,一切重复性的工作,都应该通过程序自动执行.「自动化测试」就是一个最好的例子. 随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无法满足如今的业务 ...
- java工程编辑器中文乱码_Java Web开发项目中中文乱码解决方法汇总
Java Web项目中,解决中文乱码方法总结如下 第一种情况:调用jsp页面中文显示乱码问题描述:通过浏览器调用jsp页面,在浏览器中显示的中文内容出现乱码. 解决方法:首先确认本jsp在编辑器中保存 ...
- 一些企业个人网银的U盾或是usbkey在web(IE)网页中无法使用的解决方法
因为我电脑是win10的系统默认的是IE11的浏览器,对于一些老的U盾或是usbkey很蛋疼. 折腾了几个月每次都是用其他di电脑才能登陆,从检测系统到检查usbda到驱动 最后发现是因为ie内核的原 ...
最新文章
- DPDK — App 的 Makefile 解析
- 两列高度自适应(转)
- shujufenxi : shenzhenditie
- hadoop安装部署(伪分布及集群)
- java中jxl飘红_jxl导出excel文件,部署到tomcat中就会报错,为什么呢,求解!
- oracle代码连接,Oracle连接核心知识点
- 腾讯校园招聘笔试 2019-8-17 第五题
- celery java_Celery(分布式任务队列) 的使用方法总结
- oracle 输出入参怎么抛异常,oracle 存储过程入参 pids , varchar2 类型,where in 条件 会抛异常...
- java中实例化代码块_Java面向对象--代码块(初始化块)和内部类
- Convert Sublime Text 2/3 to Licensed Version
- 计算机c盘 用户,如何转移Windows 7系统C盘的用户文件夹
- 开篇记(好记性不如烂笔头)
- C Primer Plus第六版第五章运算符,表达式,语句源码
- [note] 电磁场和微波理论课组(一)——电磁学(磁学部分)
- javapoet动态生成java代码
- adb bugreport -- Failed to get bugreportz version
- 块设备驱动、bio理解
- 斯坦福NLP名课带学详解 | CS224n 第11讲 - NLP中的卷积神经网络(NLP通关指南·完结)
- C/C++快速入门图形化教学法简介(目录)
热门文章
- 编写自己的tomcat, 并运行tomcat源码于eclipse中
- 用户级线程和内核级线程
- redis实现订单过期取消
- response.sendRedirect()和request.getRequestDispatcher().forward(request,reponse)的区别
- 把word excel ppt 导入到右键快捷菜单中
- linux管理员基础知识
- Server.MapPath()用法
- python+requests+pytest_Python+Requests+Pytest 在window下的安装(附pip升级过程遇到的问题)...
- v割与邮票孔_pcb板V割和邮票孔的区别
- 使用BCC工具获取Linux内核空间read/write操作的文件名