基于 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 站发错节点了)

7836 次点击
所在节点    Python
55 条回复
kindjeff
2016-05-06 22:22:07 +08:00
支持啊,这周末我来试试
aljun
2016-05-06 22:32:39 +08:00
@kindjeff 好啊,= =+
2225377fjs
2016-05-06 22:47:49 +08:00
gevent 不是 自己有 wsgi server 么。。?楼主这是个 搞了个 wsgi application 上去。。?其实把 gevent 的 wsgiserver 能和现在大多数的 python web 框架结合起来用的。
aljun
2016-05-06 23:01:13 +08:00
@2225377fjs 基本上是包装了 gevent 的 pywsgi (非 wsgi ),给日常更简单的使用,
Magic347
2016-05-06 23:18:30 +08:00
https://github.com/salamer/jolla/blob/master/jolla/session.py
Bug Report : empty()函数逻辑写反了
aljun
2016-05-06 23:23:14 +08:00
@Magic347 好,改改改!多谢查看
Magic347
2016-05-06 23:25:59 +08:00
@aljun 赞 fix 效率!
tabris17
2016-05-06 23:27:35 +08:00
类似 flask 么
ipconfiger
2016-05-06 23:32:54 +08:00
用 flask 写好的东西,用 gunicorn 也可以加持 gevent 嘛,何必呢
kindjeff
2016-05-06 23:37:03 +08:00
session.py 第 47 行没有设置 value 值时返回 false 吗,还是故意这么写的
aljun
2016-05-06 23:37:10 +08:00
@tabris17 比 flask 要简单, flask 是 web 框架,我这是做 API server
aljun
2016-05-06 23:39:14 +08:00
@kindjeff bug fixed!
aljun
2016-05-06 23:42:06 +08:00
@ipconfiger 就是简单点呗,我当时是想搞个怎么简单怎么来的,但又完全能应付一些业务那种
justfly
2016-05-07 00:54:12 +08:00
Server 的 方法 run_server 不妨改为 run 。读起来更舒服,不啰嗦。
ayaseangle
2016-05-07 01:12:05 +08:00
貌似不错。。
Owenjia
2016-05-07 02:11:46 +08:00
表示现在在用 pycnic ,跟这个挺像的。
mirrosite
2016-05-07 08:36:13 +08:00
return 应该返回数据,而不是返回 render 模板
Allianzcortex
2016-05-07 09:34:57 +08:00
每次看到 LZ 都感觉自己大学白过了一样……
julyclyde
2016-05-07 09:52:48 +08:00
把框架和 IO 库合起来并不好吧?
aljun
2016-05-07 10:30:39 +08:00
@Owenjia 有点类似,不过我直接把 gevent 的弄出来,要比它使用简单的多,你只需写个路由,别的都爱怎么搞怎么搞

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

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

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

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

© 2021 V2EX