用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - python代码库

python web wsgi简易框架

2021-02-27 作者: gaojiawei举报

[python]代码库

from wsgiref.simple_server import make_server
from webob import Request,Response,exc
from webob.dec import wsgify


class Application:
    #路由表
    ROUTETABLE = {}

    @classmethod
    def register(cls,path):
        def wrapper(handler):
            cls.ROUTETABLE[path] = handler
            return handler
        return wrapper

    @wsgify
    def __call__(self,request:Request) -> Response:  # app = wsgify(app)
        # return self.ROUTETABLE.get(request.path, self.notfound)(request)
        try:
            return self.ROUTETABLE[request.path](request)
        except:
            raise exc.HTTPNotFound("您访问的页面被外星人劫持了")




@Application.register('/')
def index(request:Request):   # index = Application.register('/')(index)
    res = Response()
    # res.charset = 'gb2312'
    res.body = "<h1>马哥教育欢迎大家</h1>".encode()
    return res

@Application.register('/python')
def showpython(request:Request):
    res = Response()
    # res.charset = 'gb2312'
    res.body = "<h1>马哥教育python欢迎大家</h1>".encode()
    return res


if __name__ == "__main__":
    httpd = make_server('127.0.0.1', 9000, Application())

    print("Serving on port 8000...")
    try:
        httpd.serve_forever()
    except Exception as e:
        print(e)
    except KeyboardInterrupt:
        print('stop')
        httpd.server_close()


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...