用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


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

python web 框架路由实现

2021-03-10 作者: gaojiawei举报

[python]代码库

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

class Application:
    #路由表
    ROUTEABLE = {}
    #注册
    @classmethod
    def register(cls,path):
        def wrapper(handler):
            cls.ROUTEABLE[path] = handler
            return handler
        return wrapper

    @wsgify   #装饰器
    def __call__(self,request:Request) -> Response: #一个请求对应一个相应
        try:
            return self.ROUTEABLE[request.path](request)
        except:
            raise exc.HTTPNotFound("您访问的页面被外星人劫持了")

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

if __name__ == "__main__":
    httpd = make_server('0.0.0.0', 9000, Application())# 函数本身要求为可迭代对象
    try:
        httpd.serve_forever()
    except Exception as e:
        print(e)
    except KeyboardInterrupt:
        print('stop')
        httpd.server_close()


网友评论    (发表评论)


发表评论:

评论须知:

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


扫码下载

加载中,请稍后...

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

加载中,请稍后...