Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.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_Django Rest Framework_Virtualhost - Fatal编程技术网

Python Django:如何使用共享数据库同时正确处理两个网站?

Python Django:如何使用共享数据库同时正确处理两个网站?,python,django,django-rest-framework,virtualhost,Python,Django,Django Rest Framework,Virtualhost,我曾研究过如何使用Django处理多个网站,但似乎没有什么东西能真正让我信服: 以下是我现在拥有的: 一个运行在服务器上的Django项目,包含两个应用程序。一个用于API(使用django REST框架),另一个应用程序基本上使用API并显示数据(直接在数据库中检索)。我的数据库是Oracle,出于健壮性原因,它位于单独的服务器上 以下是我想要的: 两个网站,一个是API(某些用户仅使用API),另一个是网站(其他用户)。 我显然需要这两个网站共享同一个数据库(但在settings.py文件中

我曾研究过如何使用Django处理多个网站,但似乎没有什么东西能真正让我信服:

以下是我现在拥有的:

一个运行在服务器上的Django项目,包含两个应用程序。一个用于API(使用django REST框架),另一个应用程序基本上使用API并显示数据(直接在数据库中检索)。我的数据库是Oracle,出于健壮性原因,它位于单独的服务器上

以下是我想要的:

两个网站,一个是API(某些用户仅使用API),另一个是网站(其他用户)。 我显然需要这两个网站共享同一个数据库(但在settings.py文件中这应该不难处理),而且我还需要使用相同的模型、管理员等

我怎样才能尽可能地保持干燥呢?如果我做两个django项目,我将不得不复制我的模型、管理和某些业务类和函数。。。这可能是一个痛苦的维持

另一种选择是通过虚拟主机和url重定向来实现无缝连接

你认为什么是最好的解决方案?你能提供一个实施的例子吗


谢谢

选项很少:

  • 创建2个项目和一个django应用程序。您可以为公共代码创建django应用程序,就像模型一样。然后创建两个项目,并在这两个项目中使用该应用程序
  • 创建一个包含3个应用程序的项目:1个应用程序用于公共代码,1个应用程序用于API,1个应用程序用于应用程序。API和应用程序将使用通用代码应用程序
  • 用一个应用程序创建一个项目。您必须为API和应用程序创建不同的视图,并为每个视图映射不同的url
  • 选项按开销排序,而第一个选项的开销最大,但它是最有组织的解决方案


    哪一个最好?这取决于项目的大小。规模越大,开销回报就越高。如果您不知道未来项目的规模,那么我将从第三个选项开始,随着项目的发展,将转向第二个和第一个选项。

    几乎没有选项:

  • 创建2个项目和一个django应用程序。您可以为公共代码创建django应用程序,就像模型一样。然后创建两个项目,并在这两个项目中使用该应用程序
  • 创建一个包含3个应用程序的项目:1个应用程序用于公共代码,1个应用程序用于API,1个应用程序用于应用程序。API和应用程序将使用通用代码应用程序
  • 用一个应用程序创建一个项目。您必须为API和应用程序创建不同的视图,并为每个视图映射不同的url
  • 选项按开销排序,而第一个选项的开销最大,但它是最有组织的解决方案

    哪一个最好?这取决于项目的大小。规模越大,开销回报就越高。如果您不知道未来项目的规模,那么我将从第三个选项开始,随着项目的发展,将转向第二个和第一个选项