路由器配置您的项目。

urouter的Python项目详细描述


https://img.shields.io/travis/com/bruziev/urouter.svg?style=flat-squarehttps://img.shields.io/codecov/c/github/bruziev/urouter.svg?style=flat-square

这是POC,不用于生产

安装

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()

define子程序

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()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用户界面java,使用gui连接到另一台计算机/服务器的文件系统   运行sbt的ubuntu返回错误:“javahome需要<path>参数”   java如何在Android中处理许多ImageView而不出现内存问题?   查询中非法字符的java相同URL失败   安卓取消引用可能会产生“java”。lang.NullPointerException'   java中的indexoutofboundsexception“java.lang.ArrayIndexOutOfBoundsException”错误   xml Java将dom保存到文件>文件在程序结束后由另一个进程打开   Java的垃圾收集器是如何工作的?   Java如何筛选值(列表)   java处理字符串我怎样才能像在真实的书籍中一样在上面部分生成“小数字”呢?   java SonarQube是否有一个API来获取所有项目分析的一部分?   java startActivity(intent)什么都不做   JAVAutil。扫描器类Java   java如何从Firebase更新电子邮件?UpdateMail方法已被弃用   java Hibernate。如何正确组织带有注释的onetomany关系?   在java中获得卷标和驱动器号之间的映射(而不是FileSystemView)的解决方法是什么   java查找文件的路径