首页 文章 精选 留言 我的

精选列表

搜索[web开发],共10015篇文章
优秀的个人博客,低调大师

基于hi-nginx的web开发(python篇)——路由装饰器

现在,有了起步的基本认识,现在需要一个可以媲美flask或者bottle的简洁易用的路由功能,可以用装饰器写法任意映射 URLs 到代码。 这个,并不难。首先,来一个叫做hi的模块:hi.py: 1 import re 2 3 class hi: 4 def __init__(self): 5 self.uri_map={} 6 self.uri_regex_map={} 7 8 def route(self,pattern,method): 9 def wrapper_a(func): 10 self.uri_map[pattern]={'method':method,'callback':func} 11 self.uri_regex_map[pattern]=re.compile(pattern) 12 def wrapper_b(req,res,param): 13 func(req,res,param) 14 return wrapper_b 15 return wrapper_a 16 17 def run(self,req,res): 18 for k,v in self.uri_map.items(): 19 if req.method() in v['method']: 20 m=self.uri_regex_map[k].match(req.uri()) 21 if m: 22 v['callback'](req,res,m.groupdict()) 23 break 把它和index.py放在同一个目录中。以下就是使用路由装饰器后的新代码: 1 import sys 2 sys.path.append('/usr/local/nginx/python') 3 4 from hi import hi 5 app =hi() 6 7 @app.route(r'^/test/?$',['GET','POST']) 8 @app.route(r"^/$",['GET']) 9 def hello_world(req,res,param): 10 res.header('Content-Type','text/plain;charset=utf-8') 11 res.content('hello,world') 12 res.status(200) 13 14 @app.route(r"^/client/?$",['GET','POST']) 15 def client(req,res,param): 16 res.content('{}<br>{}<br>{}<br>{}<br>{}'.format(req.client(),req.method(),req.uri(),req.user_agent(),req.param())) 17 res.status(200) 18 19 @app.route(r"^/hello/(?P<who>\w+)?$",['GET']) 20 def hello(req,res,param): 21 res.content('{}={}'.format('who',param['who'])) 22 res.status(200) 23 24 25 26 if __name__ == '__main__': 27 app.run(hi_req,hi_res) 是不是跟些flask或者bottle一样简单?而且还快得多喔! 访问http://localhost:8080/,http://localhost:8080/client?a=90,http://localhost:8080/hello/cnblogs即可查看结果。 当然,也可以先安装hi.py:https://github.com/webcpp/hi.py 这样的话,上面代码的第1,2行就可以免了。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册