zoukankan      html  css  js  c++  java
  • 基于Ryu的服务器实现及相关请求访问处理

    基于Ryu的服务器实现及相关请求访问处理

    前言及问题描述

    近期又遇到了一个非常棘手的问题,由于Ryu是通过Python语言开发的,通过Ryu的wsgi的方式建立服务器,无法解析PHP,通过多次方法解决无效,后来直接基于Python做了一次实验,通过Python语言去调用相应脚本。

    实现方案

    实现方案,通过ryu的web gui的实现进行改装

    改装后代码

    import os
    import commands
    from webob.static import DirectoryApp
    
    from ryu.app.wsgi import ControllerBase, WSGIApplication, route
    from ryu.base import app_manager
    
    
    
    PATH = os.path.dirname(__file__)
    
    
    # Serving static files
    class GUIServerApp(app_manager.RyuApp):
        _CONTEXTS = {
            'wsgi': WSGIApplication,
        }
    
        def __init__(self, *args, **kwargs):
            super(GUIServerApp, self).__init__(*args, **kwargs)
    
            wsgi = kwargs['wsgi']
            wsgi.register(GUI_P4_ServerController)
    
    class GUI_P4_ServerController(ControllerBase):
        def __init__(self, req, link, data, **config):
            super(GUI_P4_ServerController, self).__init__(req, link, data, **config)
            path = "%s/html/network_slice_web" % PATH
            self.static_app = DirectoryApp(path)
    
        @route('topology', '/{filename:.*}', methods=['GET'])
        def static_handler(self, req, **kwargs):
            if kwargs['filename']:
                if kwargs['filename'] == "xxx":   #访问请求的url xxx,通过req接受数据
                    #可以通过req接受请求的数据,包括Get的请求。
                    #抓取数据后,这里就是你开始表演的地方,根据对应的需求,进行相应的代码编写
                req.path_info = kwargs['filename']
            return self.static_app(req)
    
  • 相关阅读:
    [ZJOI2010]数字计数
    [SCOI2009]windy数
    [Tjoi2018]数学计算
    [ZJOI2008] 骑士
    [CQOI2009] 中位数
    11.7 模拟赛
    10.31 模拟赛
    随机游走
    10.29 模拟赛
    10.28 模拟赛
  • 原文地址:https://www.cnblogs.com/wpqwpq/p/6854538.html
Copyright © 2011-2022 走看看