一次安装,多个域和应用?

2024-09-30 16:28:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我计划使用Django进行多站点项目,其中每个站点基本上都是独立的,但是会在所有站点上共享一些模型。在

我想知道是否有一种方法可以让每个Django的“app”成为自己的站点,用唯一的域名完成,并且仍然允许每个站点访问一个包含用户帐户、配置文件等模型的通用应用程序

该计划是允许单一登录到每个站点,通过通用应用程序共享帐户信息,并在用户登录后为每个站点创建cookie。在

我知道Django有一个‘sites’功能,但我不确定这是否足够强大以满足我的需求。在

有人能推荐一种方法吗?或者给我介绍一些可能有帮助的文章吗?在

更新

只是想知道,是否可以通过apache,以及对网址.py能够将某个域指向url结构吗?在

例如,假设主站点是mainsite.com网站,我想让另一个域指向mainsite.com/secondarysite其中secondarysite是同一实例中的django应用程序,并让apache屏蔽secondarysite.com网站域实际上指向另一个位置?在


Tags: 项目django方法用户模型com应用程序站点
3条回答

您可以考虑OpenID。在

关于。你的更新:你不需要像那样伪造URL结构,除非你也想要像这样的URLmainsite.com/secondarysite直接提供给用户。在

我假设您使用的是name-based virtual hosting。一种简单但非常灵活的方法是让每个<;VirtualHost>;指令通过常用的mod_wsgi配置指令调用不同的wsgi脚本,然后每个wsgi脚本可以设置指向不同设置文件的os.environ['DJANGO_SETTINGS_MODULE']。在

这些设置文件中的每个文件都可以有一个不同的根配置文件,因此如果需要,可以在不同的路径上配置视图。利用include机制。在

如果您希望两个域对所有事情都使用同一个数据库,只需让两个设置文件从第三个文件(例如settings)加载数据库配置_共享.py. 或者,如果您想将一些模型路由到共享数据库,而另一些则不路由,that's possible too。很容易想象如何为每个域配置:

from settings_shared import DATABASES_SHARED
DATABASES = DATABASES_SHARED.copy()
DATABASES.update({ ... })

这种方法负责为每个域配置url和数据库。 但它不考虑单点登录。在

对于SSO部分,这实际上取决于您想要什么样的用户体验以及您有多少时间;)

尝试搜索“django sso”。这里有很多相关的问题,例如: Implementing Single Sign On (SSO) using DjangoHow to build a secure Django single signon between different sites?Django + Google SSO openidIntegrating Django and .Net applications using Single Sign On (SSO)(Django) Sharing authentication across two sites that are on different domains

我想this guy在谈论这个。在

相关问题 更多 >