基于 MVC 模型和 WSGI ,正在参考 webpy 的源码架构,准备写一个至少比 webpy 重一些的,有足够前端模版渲染的 web 框架;
参考源码: django 太重, flask 不错不过架构要求太高。
有经验的大神可以说下:写一个 web 框架除了看源码,还需要注意一些什么方面吗,有什么好的建议和教程?还有什么好用的工具之类可以减少重复造轮子?
1 mengzhuo 2015-09-08 09:54:17 +08:00 ![]() 你看过 bottlepy 么 我在生产环境都是用 ( mongoengine || sqlalchemy )+ bottlepy + blinker 就能不错地完成大部分 webapp 需求了 用 Django 一般都是图省事,企业应用最多的就是权限管理了 |
![]() | 2 clino 2015-09-08 09:57:49 +08:00 ![]() uliweb 也可以参考下,uliweb 主要的特点是:可重用性,可配置性和可替换性 http://limodou.github.io/uliweb-doc/zh_CN/index.html 体系结构和机制 http://limodou.github.io/uliweb-doc/zh_CN/architecture.html |
3 chon 2015-09-08 10:02:04 +08:00 什么叫架构要求太高? |
![]() | 4 clino 2015-09-08 10:04:50 +08:00 "还有什么好用的工具之类可以减少重复造轮子?" uliweb 用到的基础组件: http://limodou.github.io/uliweb-doc/zh_CN/introduction.html#title_1-3 |
![]() | 5 wind3110991 OP @clino 感谢~ |
![]() | 6 jadecoder 2015-09-08 10:40:23 +08:00 还没开始写就把名字起好了 |
![]() | 7 loading 2015-09-08 10:55:14 +08:00 via iPhone 带足够的前端模板? 你说的是你这个是和前端强耦合的? 我觉得 flask 给我返回 json 就够了~ |
8 HavenShen 2015-09-08 11:04:01 +08:00 ![]() tornado 用比较不错的一个前端框架。 |
![]() | 9 evlos 2015-09-08 11:31:13 +08:00 ![]() Tornado + Jinja2 的搭配很赞 |
![]() | 10 janxin 2015-09-08 12:27:18 +08:00 参考下 tornado ,我想利用 async+await ,直接干掉原来的 gen.coroutine 跟 asynchronous ,当然了,需要 3.5+才能跑.... |
11 rainmakeroly 2015-09-08 12:41:04 +08:00 via Android 大概个人是刚入门。你确定可以比肩 webpy ???在已有 Django 的前提下, webpy,flask, tornado , pyramid 都有准确的定位。其他未提的也都有。总觉得会坑学的人。 |
![]() | 12 est 2015-09-08 12:53:47 +08:00 可以考虑搞一个异步框架。目前除了 tornado 一枝独秀,其他都是基于 WSGI 。 这玩意是一个死在同步上的老接口。 WSGI 2.0 也没考虑异步问题。 |
![]() | 13 Comdex 2015-09-08 13:06:07 +08:00 搞一点新概念呗 |
![]() | 14 wizardoz 2015-09-08 13:34:25 +08:00 既然不想重复制造轮子,为什么要重新写? 可以 fork 现有的框架,什么地方不满意的改改就可以了。 |
![]() | 15 wind3110991 OP @jadecoder 想到名字才想开始写的 |
![]() | 16 wind3110991 OP @loading - -好吧我的错 |
![]() | 17 wind3110991 OP @rainmakeroly 额。。。不太理解您的意思 |
![]() | 18 wind3110991 OP @Comdex 异步是个好点子,轻量级异步? |
![]() | 19 yh7gdiaYW 2015-09-08 17:23:58 +08:00 @wind3110991 我觉得现在需要一个 webpy 程度的异步框架 |
![]() | 20 MrEggNoodle 2015-09-08 17:29:35 +08:00 看了你跟别人的聊天,个人感觉你对目前框架的状况了解还不够多。 不知道你写框架的动机是什么? 为了个人提高?其实如果你把 py 下目前流行框架的源代码过一遍,或者原文档过一遍,就算不是大牛也是小牛了。 框架开始很容易,但是一个成熟有人用的框架需要有过人的技术作为基础支撑。 如果你执意要写,那么希望你在开始之前想好你的框架是为了什么而产生,然后从始至终,你的框架都要坚持你开始的理念,那么就会有他存在的价值。 嗦乱扯了一些,咋乱无章,见谅。 |
![]() | 21 wind3110991 OP @MrEggNoodle 我就是觉得一直在用别人的框架,比如 django 和 flask ,有些需要定制和个性化的地方十分不方便,不如自己从头写一个框架,然后把自己博客迁移过去 PS :我不奢望有人会用,我只希望自己能深入理解如何去写一个框架 |
![]() | 22 chengzhoukun 2015-09-08 21:20:53 +08:00 我也打算写一个,主要是为了加深下对 web 开发流程的理解 你可以去看下 flask 1.0 的代码。 另外廖雪峰的 Python 教程最后用 asyncio 和 aiohttp 搭建的简易框架也是不错的 |
![]() | 23 chengzhoukun 2015-09-08 21:21:34 +08:00 flask 0.1 (刚刚打错了) |
![]() | 24 depr 2015-09-09 10:41:09 +08:00 @wind3110991 我现在是用 Django ,在需要的时候自己改造,到某个阶段后,框架似乎不是那么重要了 |