到底 logan 是什么?

2016-04-23 21:51:56 +08:00
 julyclyde
我最近一年在用 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 又解决了哪点儿不好?
5230 次点击
所在节点    Django
6 条回复
jimmyye
2016-04-25 00:57:07 +08:00
现在改用 Click 写 cli 了:
https://github.com/getsentry/sentry/commit/f3b84a88f7944a15d2ecee0a1c1d01e59601d0e5

都是为了可以灵活管理配置:外部配置文件、覆盖配置,更方便灵活地写 command 。现在 Click 是更好的方案。
julyclyde
2016-04-25 10:46:51 +08:00
@jimmyye 我就想不明白,这么做和直接用 django management command 有啥区别?
jimmyye
2016-04-25 14:26:03 +08:00
看看 Why Click ?: http://click.pocoo.org/6/why/
只是个人选择而已,不是说 django 做不到,只是 Click 更方便更灵活更强大,他们觉得这很重要,于是改用 Click 了。就像有人受不了 django 去用 flask 一样。
julyclyde
2016-04-25 15:39:31 +08:00
@jimmyye 谢谢!
另外我就觉得是不是 django 那边 很听不进去意见 啊?江湖八卦什么的最有意思了!
julyclyde
2016-04-25 15:46:29 +08:00
@jimmyye 刚发现 Click 是 flask 那边的。嘿嘿嘿……
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 。

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

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

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

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

© 2021 V2EX