Flask python蓝图逻辑代码分离

问题描述 投票:1回答:2

我对我的烧瓶应用程序的分离感到有点困惑。用户可以登录,发布广告,这些广告可供公众使用。

URL结构将是这样的:

  • 用户主页 - www.domain.com/user
  • 用户登录 - www.domain.com/user/login
  • 用户广告列表 - www.domain.com/user/advert
  • 用户广告添加 - www.domain.com/user/vacancy/add
  • 公共广告 - www.domain.com/advert/1

问题来自于在用户控制面板内部和外部需要广告形式和逻辑的事实。以下哪一种是我的应用程序布局的最正确方法:

选项1:

  • 用户蓝图(无网址前缀)包含所有与用户相关的逻辑
  • 广告蓝图(无网址前缀)包含所有与广告相关的逻辑,包括用户发布广告并将其显示给公众

选项2

  • 用户蓝图(/ user / prefix)包含用户逻辑和广告逻辑(从用户控制面板添加广告)
  • 广告蓝图(/ advert / prefix)包含仅与用户控制面板之外的广告任务相关的广告逻辑。
python flask blueprint
2个回答
1
投票

我认为选项2提供了最合乎逻辑的一致性。虽然你正在建立一个网站,而不是一个API,但我会说仍然有一些相关的in this advice。每个端点都清楚地定义了它的来源,并且您没有留下为URL的不同部分混合蓝图的奇怪情况。这样,如果出现问题,您总能确切知道在哪里工作。

你应该拥有蓝图之外和库内的所有复杂逻辑。我假设你在某处使用数据库存储所有内容,所以无论如何你都需要一个库。然后,您应该有一个表单模板,您可以将其用于表单,无论它在哪里发生。如果复杂的逻辑在库和表单中,则在每个端点复制功能的成本很低。

来源:目前正在重新设计一个巨大的API,所以我最近一直在和很多人谈论最佳实践。


0
投票

我是对的你的逻辑应该在模型和服务类中吗?和蓝图(又名视图)只是模板和这些模块之间的薄中间件?

© www.soinside.com 2019 - 2024. All rights reserved.