Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.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 具有Tastypie接口的Django站点是否需要两个代码库?_Python_Django_Web Applications - Fatal编程技术网

Python 具有Tastypie接口的Django站点是否需要两个代码库?

Python 具有Tastypie接口的Django站点是否需要两个代码库?,python,django,web-applications,Python,Django,Web Applications,我有一个Django项目和几个应用程序。我的项目现在需要一个API。我计划使用tastypie在不同的服务器上安装API。但是,API将使用与网站相同的模型 到目前为止,我唯一的选择是 将应用程序复制到服务器,这意味着我有两个应用程序使用相同的型号,现在必须维护两个代码库——糟糕 那么,其他人如何处理这个问题呢?我有什么选择 我的模型可以以某种方式共享吗 要使其有意义,您可能需要连接到同一个数据库 为什么需要两个代码库?您有一个代码库的两个副本 将带有型号的应用程序放在一个单独的repo中,然后

我有一个Django项目和几个应用程序。我的项目现在需要一个API。我计划使用tastypie在不同的服务器上安装API。但是,API将使用与网站相同的模型

到目前为止,我唯一的选择是

将应用程序复制到服务器,这意味着我有两个应用程序使用相同的型号,现在必须维护两个代码库——糟糕

那么,其他人如何处理这个问题呢?我有什么选择

我的模型可以以某种方式共享吗

  • 要使其有意义,您可能需要连接到同一个数据库
  • 为什么需要两个代码库?您有一个代码库的两个副本

  • 将带有型号的应用程序放在一个单独的repo中,然后使用。

    为什么不在不同端口的同一台服务器上运行api?这将为你节省很多问题。跨服务器共享数据库连接可能需要考虑很多安全问题


    此外,如果您在不同的项目中重复使用相同的应用程序,您可能希望打包和版本您的应用程序以获得舒适感。想一想你试图解决的真正问题,并时刻牢记在心。每个问题都有很多解决方案,找到合适的解决方案会有所不同。

    我不建议像这样拆分您的项目

    每次编辑模型时,都必须立即对其进行编辑,否则会出现不同步的风险。相反,这会变得非常非常痛苦

    服务器是瓶颈吗?拆分站点和api计算机(但使用相同的
    models.py
    ),并在某处共享到DB的连接

    数据库是瓶颈吗?将数据库扩展到更快的机器/集群,并使用同一个站点提供web和api


    不管怎样,一个代码库,一组模型,一个数据库

    你可以将模型放在一个单独的项目中,让两个应用程序将其用作库或使用git子模块之类的东西。或者,将两个项目的web部件的代码放在一起,只处理在配置中运行的代码,但这听起来有点难看。是的,我连接到同一个数据库,拥有相同的模型等。一个服务器将是我的网站,另一个是API。我不想要真正相同的应用程序,但在两个服务器上的应用程序中使用相同的模型,即我的网站和API在一个项目中你可以有许多应用程序,在一台服务器中,您可以有许多包含许多应用程序、数据库和设置的项目。任何python文件都可以附加到服务器内任何进程的python路径,那么您要解决的问题又是什么?问题是我想与我的网站(一台服务器)和API(在不同的服务器上)共享同一个模型,而不必有两个相同的模型。@User7,为什么模型需要两个代码库?我想分为两个服务器网站和API,他们没有相同的应用程序,但如果你明白我的意思,他们需要相同的模型。也许我应该说,我想用api重用应用程序中的模型,因为它的数据库和模型etcgit子模块似乎很有趣一个“拆分站点和api机器”怎么办?举个例子?