【问题标题】:Django multiple Project using same database tablesDjango 多个项目使用相同的数据库表
【发布时间】:2020-05-14 11:31:24
【问题描述】:

我一直在阅读有关在多个 django 项目中使用相同数据库的相关文章,但是,我还没有找到解决办法。 我在导入时尝试过相对和绝对路径,但是当我尝试访问父目录时,它会给出“尝试相对导入超出顶级包”错误。

项目1通过填写表格让用户写入数据库,项目2从数据库中检索用户写入的数据。

我正在使用 Postgresql 作为数据库。我已经尝试为两个项目编写完全相同的models.py,但似乎在数据库中它们显示为单独的关系/表。例如。对于两个models.py中名为school的表,它看起来像Postgres数据库中的project1_school和project2_school。

有没有办法读写同一个数据库的同一张表?

非常感谢您。

【问题讨论】:

  • 请包括产生此错误的代码,以及确切的错误输出。
  • 我不确定是否将此称为问题,
  • 抱歉,我无法在此处放置确切的代码,但产生“ValueError:尝试相对导入超出顶级包”的行来自 Project2 views.py 中的 ..Project1.models 导入学校。

标签: django python-3.x database postgresql django-models


【解决方案1】:

我认为您可能对项目和应用程序之间的区别感到困惑。

项目与应用

项目和应用程序有什么区别?应用程序是做某事的 Web 应用程序——例如,Weblog 系统、公共记录数据库或小型投票应用程序。项目是特定网站的配置和应用程序的集合。一个项目可以包含多个应用程序。一个应用可以在多个项目中。

Writing your first Django app, part 1

因此,在您的特定情况下,我会说您的实际项目(这两个项目)可能是一个项目的应用程序。我认为这是一种更好的方法的主要原因是两者都将使用相同的数据,一个应用程序写入而另一个应用程序检索它。甚至可以争辩说它们实际上可能是同一个应用程序。但这可能取决于您业务的许多因素。

顺便说一句,我真的很难想象让两个项目使用同一个数据库是个好主意的情况。即使两个项目都需要共享数据,我也不会考虑在数据库上使用。我会尝试在应用程序级别解决它。但是我出于某种原因需要在数据库级别共享信息,有一些工具可以连接两个数据库。

【讨论】:

  • 是否可以在不同的端口上运行每个应用程序?因为我将它们分离到不同的项目而不是应用程序的原因是为每个设置单独的 settings.py 并在不同的端口上运行它们
  • 看看这个帖子Run Django on multiple ports
猜你喜欢
  • 2011-01-14
  • 2021-12-03
  • 2014-07-27
  • 1970-01-01
  • 2014-11-01
  • 2020-02-05
  • 2021-12-24
  • 1970-01-01
  • 2018-08-12
相关资源
最近更新 更多