web.py中关于url的总结 4000
2017-12-01 10:43
267 查看
网页中的数据在传递的时候有GET和POST两种方式,GET是以网址的形式传参数,在web.py中有着很好的匹配,如果我们配置以下的urls
先不考虑/weixin/后面的东西,现在我们来写index的类
随便写一个index.html模板文件
当访问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规则
重新写class index
这里是将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传值
我想看一下得到的数据类型
return type(data)
得到的是,也就是说web.py已经将post的数据转换成了str类型
那么我来试一下传递xml
其实这个微信的XML格式做了一些更改,我来试着使用lxml对它进行解析
from lxml import etree
data = web.data()
xml = etree.fromstring(data)
content = xml.find(‘Content’).text
return content
得到的结果很好
123 | urls =( '/','index', '/weixin/(.*?)','WeixinInterface' |
123 | class index: def GET(self): i = web.input(name = 'kevinkelin',age = 100) |
123456 | $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! |
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规则
123 | urls =( '/name=(.*)&age=(.*)','index', '/weixin/(.*?)','WeixinInterface' |
12 | class index: def GET(self,name,age): |
当访问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传值
12 | def POST(self): data = web.data() |
我想看一下得到的数据类型
return type(data)
得到的是,也就是说web.py已经将post的数据转换成了str类型
那么我来试一下传递xml
12345678 | <xml><ToUserName>yanxingyang</ToUserName><FromUserName>study_python</FromUserName><CreateTime>123456</CreateTime><MsgType>text</MsgType><Content>Just a test</Content></xml> |
from lxml import etree
data = web.data()
xml = etree.fromstring(data)
content = xml.find(‘Content’).text
return content
得到的结果很好
相关文章推荐
- web.py中关于url的总结
- 4000 关于web 打印的总结
- 关于URL+method、通用参数封装的设计思路(java web,SSM框架)
- 关于url-pattern的编写方式和路径总结
- 关于在WebView监听Url的加载
- Java web 中关于Servlet的一些总结
- 关于Webview拍照或从相册上传图片处理总结
- Aaron Swartz Rewriting Reddit中关于web.py的创建思路
- 关于spring MVC web.xml配置文件的编写总结(持续更新)
- 关于web.xml中url-pattern的设置问题
- 关于Web前端密码加密是否有意义的总结!
- android 关于webview的小小总结
- 关于webview的加载及缓存的总结
- 关于URL、Web的一些概念
- [置顶] 【Android开发技巧】 关于Webview拍照或从相册上传图片处理总结
- 关于WEB的URL安全测试
- 关于利用webpy的框架下,HTML无法加载CSS和背景图片的问题
- 每个 Web 开发者都应该知道的关于 URL 编码的知识
- 关于web自动化测试的一些自己的思考和总结
- 关于web.xml配置中的<url-pattern>