我正在使用龙卷风框架,我想将用户输入的信息发送到另一个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 :(得分: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的请求公开您的方法。因此,如果您访问localhost:8888,则会在您的浏览器main.html
中呈现模板。
然后,如果您使用localhost:8888
参数向event
发送了一个帖子请求,那么它就会被回显给您看