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
prasanta
V2EX  ›  Python

xweb: 后端开发应该是简洁的, 禅意的

  •  2
     
  •   prasanta · 2017-03-09 18:12:32 +08:00 · 2696 次点击
    这是一个创建于 2846 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简介

    众所周知, 如今的后端开发主要是负责接口的开发, 而前后端分离又是当下最流行的. 如果使用 python 技术栈, 通常情况下我们会选择 flask 全套,django,或者 tornado. 他们的模板引擎, session 功能在当下的后端开发中是基本不用的. 同时由于它们开始的时候是基于 python2 写的, 造成了现在代码中充斥着大量丑陋的兼容性代码. 再次, 它们依赖的许多第三方库也包含了许多为 python2 写的代码, 这样造成了恶性循环, 学习它们的源码必须要学习 python2 中一些被淘汰的东西, 而我们可能只是想看看其中某些功能的逻辑而已. 因此, 我用极少的代码实现了一个极简的 web 框架 xweb.(项目地址:https://github.com/gaojiuli/xweb)

    理由

    xweb 摒弃了一切为了 python2 而写的代码, 因此代码量特别少, 看过 xweb 源码的人都知道, 它的逻辑非常清晰, 代码也是很容易理解的.

    xweb 不包含任何第三方库, 这让大家的学习成本进一步降低. 因为吸收了 flask, bottle, sanic 等框架中的一些优点, 我精简了 xweb 的 api, 使得上手轻松, 学习成本极低.

    xweb 是基于 wsgi 写的, 因此所有适合 flask 的部署方法, xweb 也都支持.

    使用 xweb 写出的接口代码, 别人很容易理解, 别人也能很容易参与进开发.

    怎么用

    v2ex 帖子: xweb: 一款无依赖的 Python web 框架(低于 500 行代码)

    (项目地址:https://github.com/gaojiuli/xweb)

    xweb 的 README 就是全部文档了, 短短一页就表述清楚了所有 api.

    目的

    让 web 开发的学习成本降到最低, 不管是开发也好, 源码学习也好, xweb 都是非常推荐使用的.

    xweb(web 框架) + xorm(ORM 库,未写) + xparser(数据验证库,未写).构成一个完整体系, 它们共同特点是源码简洁, api 精简, 摒弃 python2. 这个体系会使得后端接口开发更加容易, 接口代码也更加优雅. 如果有朋友对我的想法有兴趣, 可以一起参与进来.

    The Zen

    Beautiful is better than ugly.

    Explicit is better than implicit.

    Simple is better than complex.

    12 条回复    2017-03-10 13:18:41 +08:00
    taowen
        1
    taowen  
       2017-03-09 19:17:47 +08:00 via Android
    支持一下
    prasanta
        2
    prasanta  
    OP
       2017-03-09 20:14:56 +08:00
    @taowen 多谢
    MemoryCorner
        3
    MemoryCorner  
       2017-03-09 20:55:12 +08:00   ❤️ 1
    支持!
    loading
        4
    loading  
       2017-03-09 20:56:05 +08:00 via Android
    已 unstart
    kindjeff
        5
    kindjeff  
       2017-03-09 20:57:25 +08:00
    @loading 😀
    PythonAnswer
        6
    PythonAnswer  
       2017-03-09 21:11:55 +08:00 via Android   ❤️ 1
    一直用 bottle 干这样的事情,你得超越它啊。
    prasanta
        7
    prasanta  
    OP
       2017-03-09 21:27:44 +08:00
    @PythonAnswer 谢谢你的支持。
    Kilerd
        8
    Kilerd  
       2017-03-09 21:49:58 +08:00
    我觉得更像一个原型产品。 毫无新意。
    junnplus
        9
    junnplus  
       2017-03-09 21:52:26 +08:00
    @Kilerd +1
    realwangyibo
        10
    realwangyibo  
       2017-03-09 22:34:26 +08:00 via iPhone
    已支持
    liantian
        11
    liantian  
       2017-03-10 12:50:21 +08:00 via Android
    作为一个业余 python ,随便说说。

    web.py bottle django flask 一路用来,有 7 年了,都是写工作无关的 app ,非生产,现在只用 django 和 flask 。

    django 就不说了,概括就是一应俱全。

    flask 对比 web.py 和 bottle 的优势很大来自于无数方便的第三方扩展,我想用 orm 只需要 pip 个 flask-sqlalchemy ,想用管理后台只要 pip 个 flask-admin 。

    扩展性好,扩展资源丰富,尽可不需要自己造轮子,这才是 flask 成功的原因吧。


    一个太简洁的框架,也意味着使用过程中需要自己造太多的轮子,这感觉很不 python ,用业余的角度,感觉很难成功.....
    prasanta
        12
    prasanta  
    OP
       2017-03-10 13:18:41 +08:00
    @liantian 我这样是为了低耦合, 后续我会实现 orm 与 validator 功能.
    由于它们之间是互相独立的, 因此可以随意用到其他地方.
    分开开发不同库的好处你应该可以理解吧 ?

    以后使用 xweb + xorm +xdata 能够快速实现开发.
    而单独的 xweb 只负责 request 的接收,以及 response 的返回.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1075 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 19:10 · PVG 03:10 · LAX 11:10 · JFK 14:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.