1
janxin 2015-11-26 23:13:28 +08:00 via iPhone
本质上蓝图组织方式 tornado 里也能用,只不过是需要拆分就好了。至于蓝图的 url 组织形式, tornado 里也有人实现过了 url 修饰器功能,修改一下就可以用了。
模型复用比较多的时候,我的项目组织比较类似,不过 controller 部分进行了模块拆分。 其实我也觉得 django 挺好的,除了性能… |
4
zhuangzhuang1988 2015-11-26 23:31:26 +08:00
大型项目? 没做过. 不过看过 ipython notebook 中的代码的
https://github.com/ipython/ipython/blob/3.x/IPython/html/notebookapp.py#L223 |
5
mywaiting OP |
6
fwee 2015-11-26 23:42:12 +08:00
我也是最近刚用,不是按照 MVC ,而是按照功能模块放在不同的 package 里,然后多拆分 handler
|
7
wingyiu 2015-11-26 23:43:32 +08:00
不一定要在同一个项目吧?比如那个不同子域名的。拆分成不同的小 tornado 项目 单独部署不也是一种方式吗?重复的部分搞成一个库咯?
|
8
mywaiting OP @wingyiu 主要拆分成小的 project ,那会很小啊,懒得拆了再开多一个 git 仓库了。其实 django 或者 flask 那样类似 package 组织的话,可以组织得挺好的 :)
|
9
slixurd 2015-11-27 00:47:41 +08:00
RPC 啊 SOA 啊
好吧,我受 Java 荼毒太深。 |
10
zeayes 2015-11-27 08:47:15 +08:00 1
拆分一下项目吧,做下服务化,是明智的选择。
|
11
tuteng 2015-11-27 09:15:53 +08:00
同感
|
12
yueyoum 2015-11-27 10:08:02 +08:00
python web 生态圈 为何 Django 一家独大?
因为其他框架 做到后面, 基本都是你自己添加各种东西,拼凑出一个 Django 来 但是 远没有 Django 本身优雅 |
14
mywaiting OP @yueyoum 基本都是这样的吧,因为 web 开发都是这些东西,要是用 tornado 、 flask 这样的,那就只能不断去拼凑了,最后都差不多整成 django 这样或者近似 django 等大型框架这样。
但是不能否认,这么拼凑的过程中,自己不断造轮子可以对 web 开发的理解深刻好多。回头再来用 django ,那就基本是稍微翻翻文档的事情吧。 |
15
lianghui 2015-11-27 11:18:39 +08:00 1
把最近的 tornado 项目分层结构参考 分享下。 吸收了 scala 框架与一些其他语言框架的特性, 使用了 tow scope 的概念,使用了 hocon 配置,使其可被文件配置。
https://github.com/whiteclover/Zephyr /CODE/ZEPHY │ requirement.txt │ setup.py │ zephyrd │ ├─conf │ app.conf # hocon 配置 ├─schema │ mysql └─zephyr │ app.py # 应用 │ autoload.py # 自动加载容器 │ breeze.py #核心容器实现 │ cmd.py │ feed.py │ flash.py │ helper.py │ jinja2t.py │ log.py │ options.py │ orm.py │ patch.py │ pedis.py │ session.py │ util.py │ __init__.py │ ├─asset #静态文件 │ ├─js │ └─theme │ └─default │ ├─css │ ├─img │ └─js ├─boot # 命令控制 │ asset.py │ database.py │ jinja2t.py │ pedis.py │ site.py │ __init__.py │ ├─config # 配置加载 lexer 类 │ errors.py │ hocon.py │ _config.py │ __init__.py │ ├─lang │ │ __init__.py │ ├─en_GB │ ├─zh_CN │ └─zh_TW │ ├─lib │ image.py │ memoize.py │ paginator.py │ validator.py │ __init__.py │ ├─module # 模块 api 分割 │ │ __init__.py │ │ │ ├─category │ ├─comment │ ├─extend │ │ │ mapper.py # orm 层 │ │ │ model.py # 领域类, 可以进一步分成模块文件夹 │ │ │ thing.py # 逻辑层 │ │ │ __init__.py │ │ │ │ │ └─view # url 控制与 url 路由 │ │ field.py │ │ __init__.py │ │ │ ├─front │ │ mixin.py │ │ view.py │ │ __init__.py │ │ │ ├─menu │ │ thing.py │ │ view.py │ │ __init__.py │ └─user │ mapper.py │ model.py │ thing.py │ view.py │ __init__.py │ └─template ├─admin │ ├─extend │ │ ├─field │ │ ├─metadata │ │ └─plugin │ ├─layout │ │ edit.html │ │ footer.html │ │ header.html ├─component │ views.html #组件 └─theme └─default |
16
felixzhu 2015-11-27 11:39:14 +08:00
其实都是这样的,慢慢的到最后就会做成 Django 。。
楼主可以参考下网上的开源项目的结构,比方说 sentry 之类的,然后自己拓展一下 |
17
waytwoex 2015-11-27 12:35:45 +08:00
受到 php 的荼毒,我这个架构其实也不怎么样。。仅供参考……
https://github.com/phith0n/Minos |
18
northisland 2015-11-27 20:11:17 +08:00
@lianghui 请问这图是怎么生成的?
|
19
shajiquan 2015-11-27 20:25:27 +08:00
@northisland 这不是文字么。用 tree 命令就生成了。
|
20
northisland 2015-11-28 11:05:59 +08:00
@shajiquan 刚装上 tree ,多谢了~
|
21
inevermore 2015-11-28 13:29:54 +08:00
@mywaiting 赞同,一开始使用 rails 或者 django ,看似很方便,其实不知所以然
|
22
shajiquan 2015-11-30 23:51:52 +08:00
@northisland You are very welcome.
|
23
roundgis 2021-05-14 18:14:46 +08:00 via Android
和 django 一樣
|