V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
wind3110991
V2EX  ›  Python

正在自己动手写一个基于 python 的 web 框架 Dolphin,各位有什么好的教程和建议吗?

  •  1
     
  •   wind3110991 · 2015-09-08 09:49:40 +08:00 · 4638 次点击
    这是一个创建于 3161 天前的主题,其中的信息可能已经有所发展或是发生改变。

    基于 MVC 模型和 WSGI ,正在参考 webpy 的源码架构,准备写一个至少比 webpy 重一些的,有足够前端模版渲染的 web 框架;

    参考源码: django 太重, flask 不错不过架构要求太高。

    有经验的大神可以说下:写一个 web 框架除了看源码,还需要注意一些什么方面吗,有什么好的建议和教程?还有什么好用的工具之类可以减少重复造轮子?

    26 条回复    2015-09-09 15:27:13 +08:00
    mengzhuo
        1
    mengzhuo  
       2015-09-08 09:54:17 +08:00   ❤️ 1
    你看过 bottlepy 么
    我在生产环境都是用
    ( mongoengine || sqlalchemy )+ bottlepy + blinker
    就能不错地完成大部分 webapp 需求了

    用 Django 一般都是图省事,企业应用最多的就是权限管理了
    clino
        2
    clino  
       2015-09-08 09:57:49 +08:00   ❤️ 1
    uliweb 也可以参考下,uliweb 主要的特点是:可重用性,可配置性和可替换性
    http://limodou.github.io/uliweb-doc/zh_CN/index.html
    体系结构和机制 http://limodou.github.io/uliweb-doc/zh_CN/architecture.html
    chon
        3
    chon  
       2015-09-08 10:02:04 +08:00
    什么叫架构要求太高?
    clino
        4
    clino  
       2015-09-08 10:04:50 +08:00
    "还有什么好用的工具之类可以减少重复造轮子?"
    uliweb 用到的基础组件: http://limodou.github.io/uliweb-doc/zh_CN/introduction.html#title_1-3
    wind3110991
        5
    wind3110991  
    OP
       2015-09-08 10:23:50 +08:00
    @clino 感谢~
    jadecoder
        6
    jadecoder  
       2015-09-08 10:40:23 +08:00
    还没开始写就把名字起好了
    loading
        7
    loading  
       2015-09-08 10:55:14 +08:00 via iPhone
    带足够的前端模板?

    你说的是你这个是和前端强耦合的?

    我觉得 flask 给我返回 json 就够了~
    HavenShen
        8
    HavenShen  
       2015-09-08 11:04:01 +08:00   ❤️ 1
    tornado 用比较不错的一个前端框架。
    evlos
        9
    evlos  
       2015-09-08 11:31:13 +08:00   ❤️ 1
    Tornado + Jinja2 的搭配很赞
    janxin
        10
    janxin  
       2015-09-08 12:27:18 +08:00
    参考下 tornado ,我想利用 async+await ,直接干掉原来的 gen.coroutine 跟 asynchronous ,当然了,需要 3.5+才能跑....
    rainmakeroly
        11
    rainmakeroly  
       2015-09-08 12:41:04 +08:00 via Android
    大概个人是刚入门。你确定可以比肩 webpy ???在已有 Django 的前提下, webpy,flask, tornado , pyramid 都有准确的定位。其他未提的也都有。总觉得会坑学的人。
    est
        12
    est  
       2015-09-08 12:53:47 +08:00
    可以考虑搞一个异步框架。目前除了 tornado 一枝独秀,其他都是基于 WSGI 。 这玩意是一个死在同步上的老接口。 WSGI 2.0 也没考虑异步问题。
    Comdex
        13
    Comdex  
       2015-09-08 13:06:07 +08:00
    搞一点新概念呗
    wizardoz
        14
    wizardoz  
       2015-09-08 13:34:25 +08:00
    既然不想重复制造轮子,为什么要重新写?
    可以 fork 现有的框架,什么地方不满意的改改就可以了。
    wind3110991
        15
    wind3110991  
    OP
       2015-09-08 16:42:10 +08:00
    @jadecoder 想到名字才想开始写的
    wind3110991
        16
    wind3110991  
    OP
       2015-09-08 16:43:33 +08:00
    @loading - -好吧我的错
    wind3110991
        17
    wind3110991  
    OP
       2015-09-08 16:44:13 +08:00
    @rainmakeroly 额。。。不太理解您的意思
    wind3110991
        18
    wind3110991  
    OP
       2015-09-08 16:48:20 +08:00
    @Comdex 异步是个好点子,轻量级异步?
    yh7gdiaYW
        19
    yh7gdiaYW  
       2015-09-08 17:23:58 +08:00
    @wind3110991 我觉得现在需要一个 webpy 程度的异步框架
    MrEggNoodle
        20
    MrEggNoodle  
       2015-09-08 17:29:35 +08:00
    看了你跟别人的聊天,个人感觉你对目前框架的状况了解还不够多。
    不知道你写框架的动机是什么?
    为了个人提高?其实如果你把 py 下目前流行框架的源代码过一遍,或者原文档过一遍,就算不是大牛也是小牛了。
    框架开始很容易,但是一个成熟有人用的框架需要有过人的技术作为基础支撑。
    如果你执意要写,那么希望你在开始之前想好你的框架是为了什么而产生,然后从始至终,你的框架都要坚持你开始的理念,那么就会有他存在的价值。
    啰嗦乱扯了一些,咋乱无章,见谅。
    wind3110991
        21
    wind3110991  
    OP
       2015-09-08 17:54:12 +08:00
    @MrEggNoodle 我就是觉得一直在用别人的框架,比如 django 和 flask ,有些需要定制和个性化的地方十分不方便,不如自己从头写一个框架,然后把自己博客迁移过去
    PS :我不奢望有人会用,我只希望自己能深入理解如何去写一个框架
    chengzhoukun
        22
    chengzhoukun  
       2015-09-08 21:20:53 +08:00
    我也打算写一个,主要是为了加深下对 web 开发流程的理解
    你可以去看下 flask 1.0 的代码。
    另外廖雪峰的 Python 教程最后用 asyncio 和 aiohttp 搭建的简易框架也是不错的
    chengzhoukun
        23
    chengzhoukun  
       2015-09-08 21:21:34 +08:00
    flask 0.1 (刚刚打错了)
    depr
        24
    depr  
       2015-09-09 10:41:09 +08:00
    @wind3110991 我现在是用 Django ,在需要的时候自己改造,到某个阶段后,框架似乎不是那么重要了
    wind3110991
        25
    wind3110991  
    OP
       2015-09-09 15:27:02 +08:00
    @depr 同意你的观点
    wind3110991
        26
    wind3110991  
    OP
       2015-09-09 15:27:13 +08:00
    @chengzhoukun 感谢~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2407 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 09:31 · PVG 17:31 · LAX 02:31 · JFK 05:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.