大规模Python Tornado项目的最佳结构是什么?
我正在使用mongodb数据库,搭配tornado作为我的核心框架。目前,我的主文件里有很多处理程序。这个应用是一个多用户的网页应用,用户之间可以互相链接,也就是有一个“好友”系统。
My current structure is:
templates/
static/
main.py (contains all handlers)
user_actions.py
auth_actions.py
.
.
.
bar_actions.py
大部分处理程序对应着一些操作文件。比如,处理好友请求的程序对应着user_actions.py文件里的一个函数,这个函数接受数据库和用户ID作为参数。我觉得这样的结构对于一个大项目来说不是最好的布局。我是不是应该有一个模型文件,里面包含当前用户的模型,还是说这只是多余的?现在我把当前用户存储为一个字典,放在一个cookie里。
1 个回答
8
如果你有很多处理程序,每个处理程序都有自己的代码,你可以把它们分开,放到一个叫 handlers
的文件夹里,这个文件夹放在你的应用程序内部。
Tornado 并没有强制要求你使用特定的结构,所以我建议你去看看一些示例的 Tornado 项目,或者在 GitHub 上找找开源的 Tornado 项目,这样可以了解别人是怎么组织代码的。
我只做过一个 Tornado 项目,但我在网上找到的例子都遵循了我上面提到的这种做法:
├── app.py
├── common
│ ├── __init__.py
│ └── utils.py
├── custom_settings.py
├── handlers
│ ├── user_handler.py
│ ├── auth_handler.py
│ └── __init__.py
├── __init__.py
├── requirements.txt
├── scripts
├── supervisord.conf
└── tests
├── __init__.py
├── test_common.py
└── test_handlers.py