gavinloveesther 2014-09-23 06:29 采纳率: 0%
浏览 2892

tornado web.py 重写tornado.web.RequestHandler 的构造函数

我想在url路由中传递参数,但是不会重写tornado.web.RequestHandler的构造函数,求大神指点。
怎么就收路由里面 AppHandler 传递的“abc”
感恩!

coding: utf-8

import datetime, sys, SocketServer,time
import tornado.httpserver
import tornado.ioloop
from tornado.options import define, options
import tornado.web
import tornado.database
import tornado.escape
import urlparse
import urllib
import re

reload (sys)
sys.setdefaultencoding('utf-8')

class Application(tornado.web.Application):
def init(self):
handlers = [
(r"/abc", AppHandler("abc")),
]
settings = dict(
debug = False,
)
tornado.web.Application.__init__(self, handlers, **settings)

class AppHandler(tornado.web.RequestHandler):
def init(self, *args, **kwargs):
tornado.web.RequestHandler.__init__( self, *args, **kwargs )
self.action=${接收“abc”}

def post(self):
    try:
        self.today = datetime.datetime.today()
        self.did = self.get_argument("did", default = "")


    except:
        pass
    self.set_status(204)
    self.finish()

def get(self):
    try:
        pass
    except Exception, e:
        raise
    else:
        pass
    finally:
        pass

def main(argv):
tornado.options.parse_command_line()
http_server = tornado.httpserver.HTTPServer(Application(), xheaders=True)
http_server.listen(int(argv[1]))
tornado.ioloop.IOLoop.instance().start()
print "start listening..."

if name == "__main__":
main(sys.argv)

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 18:23
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要实现将URL路径中的参数传递给AppHandler,你需要在你的Application类中定义一个方法来处理这些参数。以下是一个示例:

    from tornado.web import RequestHandler
    
    class MyHandler(RequestHandler):
        def initialize(self, app_name, action):
            self.app_name = app_name
            self.action = action
    
        def get(self):
            # 在这里添加处理逻辑
            pass
    

    然后,在你的main函数中创建一个新的MyHandler实例,并传入你想要传递的参数:

    application = Application([
        ("/my_path", MyHandler, "my_action"),
    ])
    
    http_server = tornado.httpserver.HTTPServer(application)
    
    http_server.listen(port)
    

    现在你可以使用application对象和port参数来启动HTTP服务器了。

    注意:这个例子是基于Tornado Web框架的,如果你正在使用其他Web框架(例如Flask或Django),你可能需要根据具体情况进行调整。

    评论

报告相同问题?

悬赏问题

  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题
  • ¥20 基于matlab的航迹融合 航迹关联 航迹插补
  • ¥15 用Matlab实现图中的光线追迹
  • ¥15 联想笔记本开机出现系统更新界面