本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7586226
建立时间:2006年5月29日




[TurboGears]深入 TurboGears - 驗證並轉換表單參數 (Validators) 講解草稿
软件技术

lhwork 发表于 2007/2/25 13:49:16

在 TurboGears 中可以用 "@validate()" 裝飾方法來處理輸入表單參數的轉值與驗證. 使用的好處是除了會自動確認型態的正確性之外, 還會將字串轉換成目標型態.例如拿前一個網頁加法器作例子, 原來例子中加總結果必須先將字串轉換成目標型態 , 因此計算式如下SUM = (int(A)+int(B))我們可以使用"@validate()"來預先先確認輸入資料, 並將資料轉換成預期的資料型態.範例如下:from turbogears.validators import * @expose(inputform ="add") @validate(validators=dict(A=validators.Int(),B=validators.Int())) def calcit(self,A=0,B=0, SUM=0): template = """ <form name="add" method="post" action="/calcit"> <input name="A" type="text" value="%d"/> + <input name="B" type="text" value="%d"/> <input type="submit" value="=" /> <input name="SUM" type="text" value="%d"/> </form> """ SUM = A + B return template%(A,B,SUM)@validate(validators=dict(A=Int(),B=Int()))@validate(validators={"A":Int()}, "B":Int())現在例子中由於已經預先將字串轉換成目標型態, 因此可以直接加總SUM = A + B這讓程式碼可讀性更進一步增加了.總結validate()" 方法除了可以幫忙我們判斷回傳值型態外,同時也會將回傳值從傳回的字串型態轉換成指定型態供我們處理除了這些簡單值的字串轉換外,在 TurboGears 中做 email 地址確認時, 甚至還能選擇確認 email 主機是否真正存在喔;)


阅读全文(4034) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.313 second(s), page refreshed 144755711 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号