Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何配置多个django应用程序以使用同一数据库?_Python_Django_Docker_Microservices - Fatal编程技术网

Python 如何配置多个django应用程序以使用同一数据库?

Python 如何配置多个django应用程序以使用同一数据库?,python,django,docker,microservices,Python,Django,Docker,Microservices,当我将Django应用程序配置为使用容器时,我遇到了一个问题,因为我试图将进程分割成更小的映像。我如何将逻辑分解成更小的组件,这些组件运行在它们自己的容器中,同时访问相同的数据库 我意识到,在一个“真正”的微服务环境中,我希望每个服务都有一个不同的数据库。但是,考虑一个情况,我有一个逻辑,从数据库读取数据,并产生CSV文件。p> 我想把它分解成一个单独的映像类型,它只包含那个逻辑,并得到一个特殊的磁盘挂载来写入文件。其余的应用程序仍然是无状态的 因此,我只剩下两个django应用程序,一个用于将

当我将Django应用程序配置为使用容器时,我遇到了一个问题,因为我试图将进程分割成更小的映像。我如何将逻辑分解成更小的组件,这些组件运行在它们自己的容器中,同时访问相同的数据库

我意识到,在一个“真正”的微服务环境中,我希望每个服务都有一个不同的数据库。但是,考虑一个情况,我有一个逻辑,从数据库读取数据,并产生CSV文件。p> 我想把它分解成一个单独的映像类型,它只包含那个逻辑,并得到一个特殊的磁盘挂载来写入文件。其余的应用程序仍然是无状态的

因此,我只剩下两个django应用程序,一个用于将数据读写到数据库,另一个用于对同一数据库进行加速和运行报告

选项1:是我一直在使用同一个应用程序,其中已经定义了模型。我旋转一个容器进行处理,旋转同一图像的另一个容器进行报告。虽然这样做可行,但将行为隔离到特定应用程序似乎是一种更好的模式


选项2:。。。我的第二个选择是什么

您的环境中是否使用docker网络

建议1:(简单,但可以解决您的问题)在两个应用程序中复制models.py。使用容器数据库名称连接数据库。 如果需要在容器之间调用函数(def),可以使用API的调用,使用(Django Rest框架)ou pure Django with JsonResponse。 不要忘记创建令牌以访问此“Api调用”


最诚挚的问候

感谢您的回复。我曾简要考虑过这一点,但我担心在这两个位置维护该文件。另外,我认为需要特别注意确保两个应用程序不会为相同的models.py生成迁移。