2017-08-05 44 views
0

我有以下文件夹设置:的Django放在哪里共享模型和逻辑

  • 的myproject
  • 网络
  • 工人

Web项目是包含典型的Django网站包括模型和一些将逻辑从视图中移除的服务类。该网站将显示来自数据库的数据。 worker文件夹包含2个正在填充数据库并对其进行聚合的类。这两个类就像后台进程。我的问题是,我应该如何构造这个?

  • 如果每个工人类得到他自己的应用程序文件夹
  • 如果是的话,我宁愿模型搬出web项目中的myproject文件夹,因为它们是在应用程序之间共享。不过这似乎是违反Django惯例,为什么呢?大会将如何处理这个问题?
  • 如果不是,我应该在哪里放置这些工作进程?我应该如何运行它们?

在此先感谢!

+0

这是一个非常广泛的问题。项目组织将会把项目变成项目。您需要将模型保存在“应用程序”目录中,以便Django处理任何迁移。如果班上没有桌子,就把它放在任何你想要的地方。 –

回答

0

通常,如果我有东西给不同部分之间共享,我不是: 1)使lib和通过PIP 2安装)项目

+0

是的,这是我的观点,我只是分享模型。不是其他的网页priject,所以我想将它们移动到一个lib文件夹,但这是违反django公约 –

+0

这不是违反django约定,包装在一个lib不违反DRY对我来说这似乎很正确 –

0

内造一个配偶帮助文件夹保留项目和应用程序( s)分离并创建适当的Python包来处理依赖关系。即

src/sites/web <-- the project, containing manage.py, settings and root urls 

src/apps/myapp <-- the app, containing models, views, etc 
src/apps/myapp/worker <-- strongly related functionality 

src/sites/web/setup.py(和/或requirements.txt),你会增加myapp为(安装)依赖。

如果worker只是松散的相关功能,然后一个单独的包才有意义,如:

src/lib/worker 

其中src/lib/worker/setup.py(和/或requirements.txt)将增加myapp作为依赖,并src/sites/web/setup.py会增加worker为依赖关系。