访问Requesthandler外部的变量

时间:2012-11-02 22:20:05

标签: html5 css3 tornado

我正在使用CSS3手风琴效果,我想检测黑客是否会 制作一个脚本来发出并行请求;即: 我在同一页面上有登录表格和登记表格,但仅限于此 一个是可见的,因为有一个CSS3:访问页面,用户 代理必须与HTML5兼容。 我使用的提示是:

class Register(tornado.web.RequestHandler): 
    def post(self): 
        tt = self.get_argument("_xsrf") + str(time.time()) 
        rtime = float(tt.replace(self.get_argument("_xsrf"), "")) 
        print rtime 
class LoginHandler(BaseHandler): 
    def post(self): 
        tt = self.get_argument("_xsrf") + str(time.time()) 
        ltime = float(tt.replace(self.get_argument("_xsrf"), "")) 
        print ltime 

我使用了xsrf变量,因为它对每个用户都是唯一的 避免让服务器认为请求来自同一个 机。 现在我想要的是:如何区分时间值: abs(ltime - rtime);意思是,我如何在课外访问rtime, 我只知道如何访问方法之外的值,我想做 此操作检测值是否小,然后用户正在使用 一个脚本来发出并行请求来杀死服务器! 换句话说(对于一般的python用户) 如果我有:

class Product: 
   def info(self): 
       self.price = 1000 
   def show(self): 
       print self.price 
>>> car = Product() 
>>> car.info() 
>>> car.show() 

1000 

但是,如果我有另一个

class User: 
    pass 

然后如何制作一个方法打印我self.price,我已经尝试过 继承,但得到错误:AttributeError:用户实例没有 属性“price”,所以只传递方法,而不是属性?

1 个答案:

答案 0 :(得分:1)

听起来您需要了解使用持久存储数据的模型对象和模式。 tornado.web.RequestHandler以及您从中继承的任何对象仅在您的请求期间存在。从服务器上收到URL到通过self.write()self.finish()将数据发送回浏览器时。

我建议您查看一些Django或Flask tutorials,了解如何在Python中构建MVC应用程序的基本概念(没有Tornado教程可以覆盖我所知道的)。