V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
julyclyde
V2EX  ›  Django

到底 logan 是什么?

  •  
  •   julyclyde ·
    julyclyde · 2016-04-23 21:51:56 +08:00 · 5204 次点击
    这是一个创建于 3137 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我最近一年在用 sentry ( getsentry.com )这个软件,本来以为是基于 django 做的,但后来发现作者用自己的东西替换掉了 django 的很多组件,改过的部分都快够一个框架了
    其中就有这么个 logan
    https://github.com/getsentry/sentry/blob/7.7.4/src/sentry/utils/runner.py#L11

    https://github.com/dcramer/logan
    这个 logan 说是 a toolkit for running standalone Django applications. It provides you with tools to create a CLI runner, manage settings, and the ability to bootstrap the process.
    但我没明白这和直接在 django commands 里写个 start 命令启动 gunicorn 又有什么区别呢?

    这里
    https://github.com/getsentry/raven-python/issues/711
    提到需要用 logan 的 configure()函数初始化 CLI 应用,而不是只设置好 django 环境变量就可以了
    看起来是有点儿玄机啊

    不过我看不懂……求点拨,到底 django 哪儿不好, logan 又解决了哪点儿不好?
    6 条回复    2016-04-25 19:31:05 +08:00
    jimmyye
        1
    jimmyye  
       2016-04-25 00:57:07 +08:00
    现在改用 Click 写 cli 了:
    https://github.com/getsentry/sentry/commit/f3b84a88f7944a15d2ecee0a1c1d01e59601d0e5

    都是为了可以灵活管理配置:外部配置文件、覆盖配置,更方便灵活地写 command 。现在 Click 是更好的方案。
    julyclyde
        2
    julyclyde  
    OP
       2016-04-25 10:46:51 +08:00
    @jimmyye 我就想不明白,这么做和直接用 django management command 有啥区别?
    jimmyye
        3
    jimmyye  
       2016-04-25 14:26:03 +08:00   ❤️ 1
    看看 Why Click ?: http://click.pocoo.org/6/why/
    只是个人选择而已,不是说 django 做不到,只是 Click 更方便更灵活更强大,他们觉得这很重要,于是改用 Click 了。就像有人受不了 django 去用 flask 一样。
    julyclyde
        4
    julyclyde  
    OP
       2016-04-25 15:39:31 +08:00
    @jimmyye 谢谢!
    另外我就觉得是不是 django 那边 很听不进去意见 啊?江湖八卦什么的最有意思了!
    julyclyde
        5
    julyclyde  
    OP
       2016-04-25 15:46:29 +08:00
    @jimmyye 刚发现 Click 是 flask 那边的。嘿嘿嘿……
    jimmyye
        6
    jimmyye  
       2016-04-25 19:31:05 +08:00
    @julyclyde 参考之前 django 官方支持 jinja2 ,其实 django core team 是开放的,只是需要有比较完美的方案、实现才会并入 django 里面, jinja2 之前也只有通过安装第三方 app 来支持。
    比如有人对 django orm 不满意,如果有人实现了比较完美的支持 SQLAlchemy 的方案, core team 也一样会 merge 。
    现在也有第三方的 app 让 django 支持 Click ,当然这种功能好像没必要并入 django 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2714 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:13 · PVG 23:13 · LAX 07:13 · JFK 10:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.