【问题标题】:Flask: each route in its own module file?Flask:每个路由都在自己的模块文件中?
【发布时间】:2018-07-12 20:39:38
【问题描述】:

我正在开发一个烧瓶应用程序,它既是常规网站(提供 HTML)又是 JSON API。它的结构是这样的(使用 apisite 的蓝图)

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.pysite.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


【解决方案1】:

通过对蓝图的进一步研究,我意识到我并没有真正完全理解和利用它们。它们的主要目的之一是将一英里长的路由模块分块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 2014-12-14
    • 1970-01-01
    相关资源
    最近更新 更多