路由器配置您的项目。
urouter的Python项目详细描述
这是POC,不用于生产
在路由器中定义处理程序 为所有路由定义全局中间件 定义内联中间件(仅对特定处理程序运行) define子程序 专用/公用路由器安装
pip install urouter
快速启动
fromaiohttpimportwebfromurouter.exporters.aiohttp_exporterimportAioHttpRouterapp=web.Application()asyncdefhandler(request):returnweb.Response(text="Hello World")router=AioHttpRouter(app)router.get("/home",handler)# At this point aiohttp is ready to register all routesrouter.export()
fromaiohttpimportwebfromurouter.exporters.aiohttp_exporterimportAioHttpRouterapp=web.Application()@web.middlewareasyncdefinfo_middleware(request,handler):# some operation before handle requestresponse=awaithandler(request)returnresponseasyncdefhandler(request):returnweb.Response(text="Hello World")router=(AioHttpRouter(app).use(info_middleware))# Register handlerrouter.get("/home",handler)# At this point aiohttp is ready to register all routesrouter.export()
fromaiohttpimportwebfromurouter.exporters.aiohttp_exporterimportAioHttpRouterapp=web.Application()@web.middlewareasyncdefinfo_middleware(request,handler):# some operation before handle requestresponse=awaithandler(request)returnresponseasyncdefhandler(request):returnweb.Response(text="Hello World")router=AioHttpRouter(app)# Middleware registered only for `/home` routerouter.include(info_middleware).get("/home",handler)# At this point aiohttp is ready to register all routesrouter.export()
fromaiohttpimportwebfromurouter.exporters.aiohttp_exporterimportAioHttpRouterapp=web.Application()@web.middlewareasyncdefinfo_middleware(request,handler):# some operation before handle requestresponse=awaithandler(request)returnresponseasyncdefhandler(request):returnweb.Response(text="Hello World")asyncdefsub_handler(request):returnweb.Response(text="Hello World")router=AioHttpRouter(app)router.include(info_middleware).get("/home",handler)# Create new routersubrouter=router.make_router()subrouter.get("/hello",sub_handler)# All registered router become starts with prefix `/sub/`# `/hello` becomes `/sub/hello`router.mount("/sub",subrouter)# At this point aiohttp is ready to register all routesrouter.export()
fromaiohttpimportwebfromurouter.exporters.aiohttp_exporterimportAioHttpRouterapp=web.Application()@web.middlewareasyncdefauth_middleware(request,handler):returnweb.HTTPForbidden()asyncdefpublic(request):returnweb.Response(text="Hello World")asyncdefprivate(request):returnweb.Response(text="Private Zone")router=AioHttpRouter(app)private_route=router.make_router().use(auth_middleware)# Adding public handlerrouter.get("/home",public)# Adding public handlerprivate_route.get("/private",private)# Mount private router to main routerrouter.mount("/",private_route)# At this point aiohttp is ready to register all routesrouter.export()
推荐PyPI第三方库