我这里有一个代码组织问题。我有一个Django项目。它位于服务器上,人们使用它,并收集数据。在某些时候,我需要分析一堆数据(我使用的是Scipy,numpy和matplotlib)。现在我使用Django数据库作为数据的单点存储。
现在,我的分析模块位于django项目中,我连接到实时服务器正在使用的相同数据库,获取数据,分析/绘图/无论如何。但是分析模块实际上与Django项目是分开的(我应该将django项目部署到另一个服务器,分析模块不会使用它)。它有不同的依赖关系。
那么我应该如何组织它以保持分离但仍允许分析模块访问Django项目的所有组件?我希望他们拥有不同的虚拟环境(因为我不希望分析模块依赖项混乱django项目环境)并且生活在不同的git repos中。
现在:
(git repo DjangoThing)
DjangoThing
MyDjangoProj
settings.py
wsgi.py
urls.py
--->analyze.py (this is dumb)
etc
MyDjangoApp1
models.py
etc
MyDjangoApp2
models.py
etc
有什么建议吗?
答案 0 :(得分:1)
重要的是要记住Django应用程序在一天结束时只是python代码,所以如果你想拥有不同的虚拟环境,你可以创建一个单独的python包并手动处理所有数据库工作,或者通过SQLalchemy,其他东西,或生狗。如果你想要的Django应用程序中有代码,你就可以破解你的PYTHONPATH,以便它知道你的Django项目在哪里。但是,您还需要了解manage.py在幕后的工作原理,因为回购中的自定义应用程序不可避免地需要加载设置以及通过manage.py发生的所有其他好处。
那该怎么办?好吧,我只是按照上面评论员的说法进行操作,只需将您的分析应用程序创建为Django仓库中的新应用程序。但首先,你可以轻松地克隆旧的仓库并将其称为“分析”和新的仓库,无论你称之为什么。对于您的分析应用程序,调整您的需求.txt,添加您的分析应用程序,然后bam,您只需要很少的努力就可以使用您的工作分析应用程序,如果您想使用它,您仍然拥有漂亮的django orm。你仍然可以拥有不同的艺术家,只是不要对你所在的人感到困惑,否则你将陷入痛苦和痛苦的世界。
如果您愿意,您甚至可以通过宁静的api通话获得超级幻想并将您的分析作为服务公开!