基于 Gevent,撸了一个 web 框架的轮子

2016-05-06 22:05:50 +08:00
 aljun

这是楼主的第一个上交到 pypi 的项目,项目名字叫 Jolla 是一个基于 gevent 的高性能 API server

这里是 gevent 所有的特性(来自 gevent 的文档):

以上这些特性,都被 Jolla 继承了

Jolla 也拥有以下独特的特性

当我在写 Jolla 时,想写的是一个高性能的 API server ,它能让使用者以简短而简短的规则去完成 server 的工作,能让他们把她们的计算过程也好运算也好,快速的发到浏览器或移动端,所以我把 Jolla 写的尽可能简单。

项目地址在这 http://salamer.github.io/jolla/ 项目文档教程在这 https://github.com/salamer/jolla/wiki

如果有什么不对的,或是错误的地方,欢迎指点,如果觉得好,可以 star 一下,谢谢啦~

安装是:

pip install jolla

使用绝对简单:


from jolla import WebApp,jolla_server,render

def index(request):
    return render('index.html')

class app(WebApp):
    urls=[
        (r'/',index)
    ]

if __name__=="__main__":
    server=jolla_server(app)
    server.run_server()
    

(之前在 v 站发错节点了)

7878 次点击
所在节点    Python
55 条回复
aljun
2016-05-07 11:26:04 +08:00
@bwangel 朋友看到了就⋯⋯大家一起玩玩呗,嘻嘻
aljun
2016-05-07 11:26:53 +08:00
@minsheng 偶然想起的一个音,我就拼音化了,就拿来做名字了
aljun
2016-05-07 11:28:08 +08:00
@xxr3376 不,那里只 compile 了一次,之前设计不好,算是补坑,但是只用做一次 re 的
xxr3376
2016-05-07 11:38:22 +08:00
@aljun 看了许多遍。。都觉得你是每个请求都把每个 url_pattern compile 一次的。。。看的好心累。。。
lianghui
2016-05-07 11:43:15 +08:00
项目看了,比我当年毕业时强很多了。说说你的的项目的问题: app 应用层异常 exception ( 500 internal exception )没有做特别的处理 貌似扔给 wsgiserver 去处理了,处理了 404 状态, 403 状态处理缺乏, chunk encoding 处理缺乏。 utf8 编码处理没有考虑,问题比较多。 建议楼主看看 webob 这个项目,或者 cherrypy 这种古董。


其他问题:

log 没有,别用 print
基建功能做好单元测试

代码建议:

所有的功能函数,类,方法必须加上注释,哈哈这个很难,不过坚持就好,我给公司的项目和小组都是这样严格要求的。

使用好的 ide 工具可以帮助你加快编码,减少注释带来的烦恼,忘词等(使用 java 一年得到的真谛)。
mengzhuo
2016-05-07 11:55:54 +08:00
@aljun 路由要用前缀树
aljun
2016-05-07 16:08:02 +08:00
@mengzhuo 好,下次更新时试试,这个用的正则
aljun
2016-05-07 16:08:24 +08:00
@lianghui 多谢建议,受教了,
aljun
2016-05-07 18:41:31 +08:00
@xxr3376 晚点写点注释好了⋯⋯之前太懒了⋯⋯
julyclyde
2016-05-07 22:30:32 +08:00
@aljun io 库是 gevent 啊
aljun
2016-05-07 23:35:47 +08:00
@julyclyde 这样啊,,网络么,,,我当时就是决定不分开的, Jolla 只是简单,可用,不做过多
icybee
2016-05-07 23:47:48 +08:00
cool 。。。。
aljun
2016-05-07 23:49:39 +08:00
@icybee 嘻嘻
aljun
2016-06-03 20:49:51 +08:00
挖个坟,因为更新
EchoUtopia
2017-01-09 20:30:41 +08:00
赞一个

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/276863

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX