[警告 - python noob]
我已经阅读了我能找到的内容,并在数据库中使用一个“站点”启动并运行了站点。我不知道从哪里开始。第二个站点的代码的正确文件夹结构是什么?它将重新使用模型(我假设 - DRY),因此可能需要使用相同的应用程序文件夹 - 但文档使用不同的设置文件来讨论它。这是我有点失落的地方。
其次,我喜欢指向如何运行开发服务器以及如何为多个站点运行apache。
提前致谢。
更新:我对网站之间设置不同的地方特别感兴趣 - 例如一个使用身份验证将所有内容放在登录后面,而另一个则不然。根据下面的对话,这是否意味着两个独立的项目?他们使用相同的模型,那么我该如何关注DRY?
我的实际情况如下:
example1.com是一个内部项目管理工具 - 它使用谷歌应用程序身份验证,因此除非您通过公司谷歌帐户进行身份验证,否则您将看不到任何页面。
我想创建example2.com,它是某些开放任务的视图(通过example1.com创建),以便自由职业者可以查看可用的工作并声明它们。他们没有谷歌应用程序帐户,因此example2.com将使用不同的身份验证。
两个共享模型(例如“项目”,“作业”)都需要从同一个数据库中读取。在django实现这一目标的最佳方法是什么?很抱歉,如果不清楚 - 我试图保持问题抽象,但这就是我在原始问题中提到不同设置文件的原因。
答案 0 :(得分:1)
这是我首选的设置。
Apache(通过mod_wsgi)应该提供example1.com(带有GA身份验证),并引用一些使用您唯一数据库的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应用程序可能在两个位置之间共享。某些应用程序可能特定于某个位置或另一个位置。
数据库在两个位置之间完全共享。
使用网站
使用与第一个站点相同的代码构建第二个站点。它不是副本或克隆。您有一组使用一个数据库的应用程序。
“网站”是用户看到的内容。 “站点”是您获取数据和使用模板向用户呈现内容的方式的结果。但这都是应用程序的一个项目。
用户感知的“网站”只有一点不同:您放入模型的site
密钥。
通常情况下,您可以使用Apache将不同的域名重定向到带有“站点”键的URL。
如果您正在构建多个不共享相同代码的站点,那么您只需要在不同的项目中构建大量应用程序。
具体用例如下:
http://docs.djangoproject.com/en/1.2/ref/contrib/sites/#how-django-uses-the-sites-framework
它是用于关联对象的钩子 和特定Web的功能 网站,它是一个举办地 域名和“详细”名称 您的Django支持的网站。
答案 1 :(得分:1)
django不提供您要完成的任务,但可以通过配置服务器来完成。以下是使用mod_wsgi或mod_python
执行此操作的示例尽管如此,这有点先进。我建议部署一些简单的django应用程序,然后尝试一下。