tornado 中,我这样的实现,是不是实现了 django 的 form??

2015-01-05 13:08:54 +08:00
 1989922yan
14 # Override base RequestHandler$                             
 15 """$              
 16 class BaseHandler(tornado.web.RequestHandler):$             
 17     def get_current_user(self):$                            
 18         """ To get `tornado-auth mechanism` """$            
 19         userid = self.get_secure_cookie("userid", None)$    
 20         if userid:$                                         
 21             return userid$                                  
 22         else:$    
 23             return None$                                    
 24 $                 
 25     def get_data(self, data_list):$                         
 26         """ Work like django.Form or Java_get_data by a class """$
 27         rst = {d: self.get_argument(d, None) for d in data_list}

我只需要在调用 self.get_data() 方法的时候,传入 data_list=('var1', 'var2')

就能一次获得所有数据,然后当做字典使用了

3114 次点击
所在节点    Python
5 条回复
FreeBTC123
2015-01-05 14:35:56 +08:00
forms不仅仅能拿数据, 还能校验数据的哦,tornado 想用的话, 推荐[WTForms](http://tt4it.com/resources/discuss/1599/)
1989922yan
2015-01-05 15:06:22 +08:00
@FreeBTC123
校验?
类型校验?
还是啥?
felixzhu
2015-01-06 10:08:26 +08:00
完全没关系,form是用来把一个表单提交绑定到一个对象,可以做校验和保存,现在做rest API的时候其实有点不太一样,一般都会自己重新做一层来做这个校验和错误返回
1989922yan
2015-01-06 10:17:02 +08:00
@felixzhu
其实绑定对象,这个我已经做了。

能不能详细说说,''' 现在做rest API的时候其实有点不太一样,一般都会自己重新做一层来做这个校验和错误返回 '''
这段,能给个例子补?
yegle
2015-01-07 05:41:03 +08:00
@1989922yan 以我之前的经验,REST API的field name和model并不一一绑定,不能直接使用从class生成的form handler,不如重写…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/159344

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX