2012-11-08 106 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