国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

淺析Python的web.py框架中url的設定方法

2019-11-25 16:38:53
字體:
來源:轉載
供稿:網友

網頁中的數據在傳遞的時候有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

2016711194530065.png (698×539)

我想看一下得到的數據類型

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 etreedata = web.data()xml = etree.fromstring(data)content = xml.find(‘Content').textreturn content

得到的結果很好

2016711194622132.png (244×124)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九江市| 容城县| 宣城市| 宁化县| 驻马店市| 遵化市| 谷城县| 乐平市| 界首市| 健康| 武鸣县| 南康市| 邹城市| 依安县| 景德镇市| 张家港市| 甘南县| 南澳县| 巴马| 从江县| 和平县| 诏安县| 军事| 田东县| 深州市| 山阳县| 固始县| 昂仁县| 烟台市| 禹城市| 镇康县| 宝鸡市| 台南县| 隆化县| 阳春市| 房山区| 新建县| 赤峰市| 合山市| 增城市| 北辰区|