前言及问题描述

近期又遇到了一个非常棘手的问题,由于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)

相关文章:

  • 2022-12-23
  • 2022-01-31
  • 2022-12-23
  • 2021-04-02
  • 2021-05-31
  • 2021-08-08
猜你喜欢
  • 2021-10-25
  • 2021-05-04
  • 2021-11-26
  • 2021-12-03
  • 2022-01-09
  • 2021-09-19
相关资源
相似解决方案