Django多站点共享数据库

2024-04-24 07:29:53 发布

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

我要开发不同的房地产公司多个网站。所有共享相同的html、节等。区别在于内容,特别是属性。。。但其中一些房产可以在其他公司之间共享。你知道吗

我想在共享同一个数据库和区分内容使用的网址。这样我就可以只使用一个项目,而不是每个公司使用一个。你知道吗

有人对这类项目有什么建议吗?你知道吗

谢谢你


Tags: 项目数据库内容属性网站html公司建议
1条回答
网友
1楼 · 发布于 2024-04-24 07:29:53

我已经做到了。
这是个好主意吗?是的,对我来说是的。我必须重复使用相同的内容,当我们更改内容时,必须在所有页面上进行更改。在一个简单的站点上,三重部署和在三个不同的项目中更改内容有点过分了。但是,尽管它在一个简单的前端页面上工作得很好(甚至不需要Django),但我不建议它用于“真正的”web应用程序。你知道吗

什么会破裂?想想你的网页将分享的东西,看看这是否是一个问题。你知道吗

1)我猜如果你想在页面上拥有用户登录功能(除了管理员登录),那么如果我可以在没有明显联系的不同公司使用相同的用户,那就是一个问题。如果这些公司发现用户的隐私细节并不像他们想象的那样隐私,你可能会遇到很多麻烦。同样的情况也适用于那些根本不知道如何在一个从未访问过的页面上创建用户帐户的用户。你知道吗

2)URL。如果没有额外的黑客攻击,每个公司不可能有不同的。如果其中一家公司想拥有/about/和另一家/company/页面,你就要开始破解一个糟糕的解决方案,当这些公司要求下一个页面时,这个解决方案就会炸开你的脸。你知道吗

3)页面上连接到硬编码数据或数据库值的任何其他内容。即社会认证等

你能做些什么?你知道吗

如果我在解决第一个问题上陷入困境,我会这样做:
-覆盖用户模型并添加有关注册页的信息
-为每个页面的用户模型创建自定义管理器
-编写一个中间件,只允许对当前请求使用特定于页面的管理器
总而言之,我不会在一百万年内做这件事。太黑了,太脆弱了。只需创建单独的数据库。你知道吗

为了解决第二个问题,您可以创建一个多主机中间件来检查请求来自哪个域,并返回正确的URL配置。类似于this的事物。根据你的需要重写和修改并不难。你知道吗

不可能为你做决定,但我已经给了你一些东西,让你在走这条路或那条路之前考虑一下。祝你好运!你知道吗

相关问题 更多 >