首页 > 其他分享 >Tornado路由管理

Tornado路由管理

时间:2024-01-29 22:34:50浏览次数:26  
标签:__ web 管理 Tornado self get tornado import 路由

Tornado还提供了多应用程序路由对象---tornado.web.url.这个对象可以让我们更加系统化的管理路由模块,比如创建一个简单的tornado服务

import tornado.ioloop
import tornado.web


class MainHandler(tornado.web.RequestHandler):
    def get(self):
        param1 = self.get_arguments('param1')[0]
        param2 = self.get_arguments('param2')[0]
        host=self.request.headers.get('Cookie')
        print(host)
        print(param1)
        print(param2)
        self.write(str(param1)+str(param2))

class UserHandler(tornado.web.RequestHandler):
    def get(self):
        self.write('首页')
def make_app():
    return tornado.web.Application([
        (r"/", MainHandler),
        (r"/user/", UserHandler),
    ])


if __name__ == "__main__":
    app = make_app()
    app.listen(8881)
    tornado.ioloop.IOLoop.current().start()

​ 上述代码中的web.Application对象会传入一个列表对象参数,分别对应首页模块和用户模块,现在这种情况看起来还不错。

​ 如果服务中方法个数有10个或者更多个呢?这个时候就不建议写在一个文件里面了,因为代码不易维护且显得很臃肿,可以考虑将方法分文件处理。tornado.web.url可以为我们提供在多个文件中注册路由的功能,类似插线板,我们最终只需将这一个或多个插线板插导主线路(main.py)即可

​ 比如服务中有一个用户模块user.py,通过tornado.web.url可以对其路由进行注册,如下所示:

app/t1.py


from tornado.web import url
import tornado.web


class UserHandler(tornado.web.RequestHandler):
    def get(self):
        self.write('首页')


urlpatterns = [
    url('/user/',UserHandler)
]

main.py

import tornado.ioloop
import tornado.web
from app import t1


class MainHandler(tornado.web.RequestHandler):
    def get(self):

        self.write('不开心')

urlpatterns = [
    (r"/",MainHandler),
]


urlpatterns += (t1.urlpatterns)

#创建tornado实例
application = tornado.web.Application(urlpatterns,debug=True)

if __name__ == '__main__':
    application.listen(8001)
    tornado.ioloop.IOLoop.instance().start()



标签:__,web,管理,Tornado,self,get,tornado,import,路由
From: https://www.cnblogs.com/luckyletop/p/17995503

相关文章

  • 路由
    原文:https://www.51cto.com/article/698945.html 发送数据时选路Linux之所以在发送数据包的时候需要进行路由选择,这是因为服务器上是可能会有多张网卡设备存在的。数据包在发送的时候,一路通过用户态、TCP层到了IP层的时候,就要进行路由选择,以决定使用哪张网卡设备把数据包送......
  • 物流平台如何与电商平台进行自动化流程管理
    为什么要实现物流与电商平台进行自动化管理实现物流平台与电商平台的自动化流程管理对企业和消费者都有着重要的意义,比如以下几点:提高效率:自动化流程管理可以减少人为操作的错误和延误,提高订单处理和物流配送的效率。通过定义清晰的流程图和自动化工具,可以快速而准确地完成订单处理......
  • 如何使用保留可探测字段参数的方法解决视频监控管理平台EasyCVR无法启动的问题
    有用户反馈,在使用EasyCVR时出现启动失败,服务无法使用的情况。收到用户反馈后,技术人员立即开展解决,以下为解决步骤:注:此解决方法为保留hardware_version可被探测的字段参数。1、首先查看报错日志:2、由上图可见,报错为LocalMachineCheckError!本地机器检查错误!随后检查配置文件,是否因......
  • 如何使用保留可探测字段参数的方法解决视频监控管理平台EasyCVR无法启动的问题
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的......
  • TDengine 签约海博思创,助力储能运维平台数据管理
    随着储能产业步入快速发展期,各类储能电站快速建设投产,规模各异,场景不同。为了实现储能电站的高效监控和运维管理,储能运维管理平台成为不可或缺的工具。通过高效的集中控制手段,这些平台能够有效解决储能电站运维成本高、效率低的问题,进一步提升运维管理的效率和智能化水平。为了实......
  • python版本管理Dynaconf模块
    示例代码importosimportsysfrompathlibimportPathfromdynaconfimportDynaconf_BASE_DIR=Path(__file__).parent.parent_CONFIG_DIR=_BASE_DIR/'config'LOG_DIR=_BASE_DIR/'files'/'logs'TOKEN_FILE=_BASE_DIR/�......
  • 在Mac上使用jenv管理JDK版本
    主要使用的工具就是jenv,安装方法有很多教程,这里贴个我使用的教程 这里记录下常用的一些命令#安装jenvbrewinstalljenv#设置jenv环境变量echo'exportPATH="$HOME/.jenv/bin:$PATH"'>>~/.bash_profileecho'eval"$(jenvinit-)"'>>~/.bash_profile#......
  • 喜报|「云原生数据库 PolarDB」、「阿里云瑶池一站式数据管理平台」揽获“2023 技术卓
    日前,国内知名IT垂直媒体&技术社区IT168公布2023年“技术卓越奖”评选结果,经由行业CIO/CTO大咖、技术专家及IT媒体三方的联合严格评审,阿里云瑶池数据库揽获两项大奖:云原生数据库PolarDB荣获“2023年度技术卓越奖”,阿里云瑶池一站式数据管理平台荣获“2023年度创新解......
  • Cisco Catalyst Center 2.3.7.4-VA - 网络管理和自动化
    CiscoCatalystCenter2.3.7.4-VA-网络管理和自动化CiscoCatalystCenter-NetworkManagementandAutomation请访问原文链接:https://sysin.org/blog/cisco-catalyst-center/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCiscoCatalystCenter节约时间,不再......
  • 会沟通的项目经理,是怎么管理干系人的?
    项目沟通管理是确保及时、正确地处理项目信息所需的过程。项目经理需要花费大量的、无规律的时间与各方进行沟通、联络。所谓各方,其中最重要的就是项目干系人。 为什么要进行干系人管理? 通常,项目经理需要识别项目干系人,以确定他们的需求及对其需求的影响。而且要在项目周期的初始......