【发布时间】:2018-07-12 20:39:38
【问题描述】:
我正在开发一个烧瓶应用程序,它既是常规网站(提供 HTML)又是 JSON API。它的结构是这样的(使用 api 和 site 的蓝图)
Project
|
+-- views
| |
| +-- api.py <-- all routes for api
| +-- site.py <-- all routes for regular site
|
+-- __init__.py
+-- category.py <-- main project dir contains shared object modules
+-- helpers.py
+-- product.py
...
这没问题,除了随着项目的增长,api.py 和 site.py 模块中的所有路线会导致它们增长一英里长。
我想像这样将每条路线拆分成自己的模块:
Project
|
+-- views
| |
+ |-- api
| | |
| | +-- __init__.py
| | +-- cart.py <-- each route has its own file
| | +-- category.py
| | +-- user.py
| | +-- ...
| | |
+ |-- site
| | +-- __init__.py
| | +-- cart.py
| | +-- category.py
| | +-- user.py
| | +-- ...
| |
+-- __init__.py
+-- category.py
+-- helpers.py
+-- product.py
...
或者至少到像/user这样组合在一起的模块中,并且所有/user/*子路由都将被放入./views/api/user.py中(例如)。
如何做到这一点?或者,有没有更好的方法?
【问题讨论】:
-
这是个人品味的问题,我会选择第一个选项,在分开的页面之间共享代码。还要记住,如果您的 API 应该与常规站点一样,您可以只编写 API 并让站点调用 API(您只需要模板)。共享代码还有一个好处,就是如果发生更改,您只需将手放在一个地方,
标签: python python-3.x flask restful-architecture