Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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 有谁能给我介绍一下在同一数据库上使用django.contrib.sites进行多视图的好指南吗?_Python_Django - Fatal编程技术网

Python 有谁能给我介绍一下在同一数据库上使用django.contrib.sites进行多视图的好指南吗?

Python 有谁能给我介绍一下在同一数据库上使用django.contrib.sites进行多视图的好指南吗?,python,django,Python,Django,[警告-python noob] 我已经阅读了我能找到的内容,并在数据库中用一个“站点”建立和运行了站点。我不知道接下来该怎么办。第二个站点的代码的正确文件夹结构是什么?它将重复使用模型(我假设为-DRY),因此可能需要使用相同的应用程序文件夹,但文档中使用了不同的设置文件。这就是我迷路的地方 第二,我想知道如何运行开发服务器以及如何为多个站点运行apache 提前谢谢 更新:我特别感兴趣的是不同站点之间的设置不同-例如,一个站点使用身份验证将所有内容置于登录之后,而另一个站点则不使用。根据下面

[警告-python noob]

我已经阅读了我能找到的内容,并在数据库中用一个“站点”建立和运行了站点。我不知道接下来该怎么办。第二个站点的代码的正确文件夹结构是什么?它将重复使用模型(我假设为-DRY),因此可能需要使用相同的应用程序文件夹,但文档中使用了不同的设置文件。这就是我迷路的地方

第二,我想知道如何运行开发服务器以及如何为多个站点运行apache

提前谢谢

更新:我特别感兴趣的是不同站点之间的设置不同-例如,一个站点使用身份验证将所有内容置于登录之后,而另一个站点则不使用。根据下面的对话,这是否意味着两个独立的项目?他们使用的是相同的型号,所以我如何遵循DRY

我的实际情况如下:

example1.com是一个内部项目管理工具-它使用google apps身份验证,因此除非您通过公司google帐户的身份验证,否则无法查看任何页面

我想创建example2.com,它是对某些类型的开放任务(通过example1.com创建)的视图,以便自由职业者可以看到可用的工作并申请它们。他们没有google apps帐户,因此example2.com将使用不同的身份验证


两个共享模型(例如“项目”、“作业”)都需要从同一数据库中读取。在django实现这一目标的最佳方式是什么?如果不清楚,很抱歉-我试图保持问题的抽象性,但这就是我在原始问题中引用不同设置文件的原因。

这是我的首选设置

example1.com(带有GA身份验证)应该由Apache(通过mod_wsgi)提供服务,并引用一些使用您唯一数据库的Django应用程序套件

example2.com也应该由相同的Apache(通过mod_wsgi)提供服务,并引用一些使用您唯一数据库的Django应用程序套件

example1.com是Apache中引用“/var/www/example1/example1.wsgi”文件的“位置”。此文件与example1.com的应用程序和配置套件的特定
example1/settings.py
关联

example2.com是Apache中引用“/var/www/example1/example2.wsgi”文件的“位置”。此文件与example2.com的应用程序和配置套件的特定
example2/settings.py
关联

一些Django应用程序可能在两个位置之间共享。某些应用程序可能特定于一个位置或另一个位置

数据库在两个位置之间完全共享


使用站点

第二个站点使用与第一个站点相同的代码构建。它不是复制品或克隆品。您有一组使用一个数据库的应用程序

“站点”是用户看到的东西。“站点”是您如何获取数据并使用模板向用户呈现内容的结果。但这都是一个应用程序项目

用户感知的“站点”只有一点不同:您放入模型中的
站点

通常,您会使用Apache将不同的域名重定向到带有“站点”键的URL

如果您正在构建多个不共享相同代码的站点,那么您只是在不同的项目中构建了许多应用程序

具体用例如下所示:

它是用于关联对象的钩子 和特定Web的功能 地点,它是 域名和“详细”名称 你的Django动力网站


django并没有提供您想要完成的任务,但是可以通过配置服务器来完成。下面是使用或使用的示例


不过,这有点先进。我建议部署几个简单的django应用程序,然后进行尝试。

因此,如果不同的站点需要不同的设置,我应该在主设置中使用if语句。py?@willcritchlow:这不是你的问题的一部分。请更新您的问题。答案是否定的。如果您需要不同站点之间的设置,则不应使用站点框架。如果你需要不同站点之间的设置,你只需要有多个Django应用程序,每个应用程序都有自己的设置。我已经更新了这个问题-这就是我最初对不同设置文件的评论。我现在已经添加了更多关于我实际要做什么的细节。只是出于好奇,你是如何管理google apps认证的?我使用这个:-我花了一些时间才让它工作起来,但我怀疑这是因为这是我第一个django项目,我真的不知道我在做什么。一旦我把所有东西都放在正确的地方,它“就起作用了”。