Flask python蓝图逻辑代码分离

时间:2014-02-19 15:42:02

标签: python flask blueprint

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

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)包含仅与用户控制面板之外的广告任务相关的广告逻辑。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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