2013-05-01 110 views
1

& Django version: 1.5.1Django的,模型和多个数据库

我目前正在开发一个应用程序后端为phpbb3。我们目前在PHP的实施正在消耗太多的资源。

我完成了大约90%的工作,但是当涉及到配置时,我挂断了一个小小的障碍。

我们有多个脚本需要运行的论坛,每个论坛都有自己的数据库,比如site1,site2和site3数据库。 Django也有自己的数据库。

我需要做的是根据每个站点和站点上的论坛为我的脚本指定设置。因此,我需要获取site1上存在的论坛,然后在管理面板中选择站点1,然后选择论坛并从中选择其配置。然后,他们可以选择站点2,然后从站点2选择一个论坛,然后设置他们的数据。

我不想为我们正在运行的每个网站创建一个django网站,并且我想尽可能地增加一个新网站,但我并不反对为每个网站制作一个新应用程序如果那是需要的?

从另一个数据库动态提取论坛并将其与站点值关联并为该论坛提供配置模型的最佳方法是什么? (我不希望他们能够挑选其他网站上存在的一个论坛)

+0

你能提供一些关于你的phpbb设置与Django的更多细节? – lalit 2013-05-01 05:56:39

+0

@lalit您想了解更多信息?有多个网站使用PHPBB进行设置,并且它们都有自己的数据库名称,所以site1有一个名为site1的数据库,里面有所有标准phpp论坛,标准phpbb_前缀。 django网站是在自己的数据库下建立的。我需要一个管理页面,让我选择/创建一个网站,然后从该网站,拉动适当的数据库,并为phpbb的数据库中存在的每个论坛提供适当的论坛模型和设置配置。 – iargue 2013-05-01 15:36:35

+0

感谢@ user1189764,所以要更具体的功能,你想实现以下目标:不同的站点的不同数据库,一起访问Django和phpbb数据库的方式和一个管理界面来选择一个网站和相应的数据库。 – lalit 2013-05-01 16:22:41

回答

1

以下是一些指针,使用它可以实现上述功能:

1.不同数据库的不同Django站点。

你可以找到一个相关的问题here,它解释了如何为Database设置custom router

2.一起访问django和phpbb数据库的方法。

有一个Github项目可用here,这可能会帮助你。

3.管理界面选择一个网站,相应的数据库和应用设置。

这个最简单的选择将是双方的DictionaryFile或组合来转储你的设置,并根据您的网站ID选择设置存在于词典该特定网站。

说实话,我觉得你不需要Admin Inteface这里。但是,如果有任何我不知道的要求,那么你可以写一个简单的视图来处理以上的事情,并提供从管理面板访问。

希望这可以解决您的问题。

+0

因为第一部分(编号1)是完全错误的,所以我甚至无法测试或处理最后部分。尝试使用他们的方法时,我得到了左右错误。例如,基于他们的设置,它不会工作,所以我将它移动到它自己的文件并在django设置中引用它,路由器将注册,但会失败。然后我从django.conf导入设置中添加了,但是从django.contrib.sites.models中添加了import Site,所以它可能会加载站点名称失败,说undefined:配置错误:导入数据库路由器时出错CustomDatabaseRouter:“无法导入名称连接” – iargue 2013-05-02 19:06:16

+0

好的。我得到了第一部分的工作(据说),但我仍然遇到其他问题。我试图设置管理页面,但是我对如何设置这个问题感到困惑。我不认为/知道内部网站框架是否可行,因为我没有在多于1个网站上运行django项目。 django项目只有一个域,只能从该域访问,所以我不知道如何关联站点变量而不从不同的域访问它。我也不确定如何将模块与不同的站点关联 – iargue 2013-05-02 19:23:06

+0

嗨,我想我对你的要求有点不清楚。根据管理面板中的选择,您是否想在同一个django项目和站点下使用不同的论坛和数据库? – lalit 2013-05-03 06:31:31