2012-11-08 69 views
1

我正在使用龙卷风框架,我想发送信息用户输入到一个窗体到另一个python模块。目前在我的Python模块我有一个龙卷风类获取表单输入数据,因为这样的:发送表单信息到Python模块

class MainHandler(tornado.web.RequestHandler): 
    def get(self): 
     self.render('main.html') 

    def post(self): 
     event = self.get_argument('event') 
     print event 

我现在想这个数据(事件)发送到另一个模块作为一个ARG。

较完整的代码是:

import tornado.httpserver 
import tornado.websocket 
import tornado.ioloop 
import tornado.web 
import tornado.options 
from pymongo import Connection 
from bson import json_util 
import json 
import os.path 

class MainHandler(tornado.web.RequestHandler): 

    def get(self): 
     self.render('main.html') 

    def post(self): 
     event = self.get_argument('event') 
     return event 



if __name__ == "__main__": 
    print 'Server is alive.....' 
    app = tornado.web.Application(
    handlers=[(r'/', MainHandler)],       
    #(r'/ws', WSHandler)], 
    template_path=os.path.join(os.path.dirname(__file__), "templates"), 
    debug=True) 

    tornado.options.parse_command_line() 
    http_server = tornado.httpserver.HTTPServer(app) 
    http_server.listen(8888) 
    tornado.ioloop.IOLoop.instance().start() 

所以我有,我想在另一个模块中使用一个类的函数的变量(事件)。这是我困惑的地方。

回答

0

通过模块你是指你有本地访问或外部服务的东西?

如果是本地很简单,输入正确的模块和功能

from yourpackage.yourmodule import yourfunction 
yourfunction(event) 

如果你想通过HTTP发送数据到外部服务提供龙卷风异步HTTP客户端这一点。 http://www.tornadoweb.org/documentation/httpclient.html

我误解你的问题MainHandler,就是要为运行使用服务器:然后

application = tornado.web.Application([ 
    (r"/", MainHandler), 
]) 

if __name__ == "__main__": 
    application.listen(8888) 
    tornado.ioloop.IOLoop.instance().start() 

这将通过请求暴露你的方法为localhost:8888。因此,如果您在浏览器main.html中访问本地主机:8888,则会呈现模板。

然后,如果你发了一个帖子请求localhost:8888event参数将它呼应了给你看

+1

这是我自己的模块本地。那么,我可以做“从tornadoPY导入MainHandler”然后执行MainHandler(event)吗?我有点困惑,因为MainHandler是一个类。 – user94628

+1

我们对你想要实现的内容感到困惑:) –

+0

在main.html中,用户在表单中输入一个关键字....然后MainHandler获取这些数据。我现在想把它发送给另一个模块,它将使用它来处理。我知道我们可以导入这个模块,但是我很困惑在这个类中使用这个函数。 – user94628