Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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
可以用一个Django实例运行几个不相关的站点吗?_Django - Fatal编程技术网

可以用一个Django实例运行几个不相关的站点吗?

可以用一个Django实例运行几个不相关的站点吗?,django,Django,每个站点都应该有自己的域、数据库、settings.py、url.py、views.py等等。据我所知,这是不可能的,但我不太确定 编辑:jdi建议对不同的应用程序使用不同的设置文件。你能解释一下怎么做吗? 另一个问题是,我使用Webfaction,在选择现有Django webapp后,收到以下错误: 具有此站点、路径和帐户的站点应用程序已存在 所以我需要知道,这是Django的局限性还是网络派系的局限性。 Django版本为1.3此项目结构适用于Django 1.4,但概念保持不变 您可以完

每个站点都应该有自己的域、数据库、settings.py、url.py、views.py等等。据我所知,这是不可能的,但我不太确定

编辑:jdi建议对不同的应用程序使用不同的设置文件。你能解释一下怎么做吗? 另一个问题是,我使用Webfaction,在选择现有Django webapp后,收到以下错误:

具有此站点、路径和帐户的站点应用程序已存在

所以我需要知道,这是Django的局限性还是网络派系的局限性。 Django版本为1.3

此项目结构适用于Django 1.4,但概念保持不变

您可以完成所有这些,只是不需要一个过程。为您的项目创建一个VirtualNV,它可以存储您需要的每个库的共享集。然后为每个站点创建不同的设置文件,每个站点加载不同的django应用程序,所有这些应用程序都位于项目中:

djangoProject
|- bin/
|- include/
|- lib/
|- manage.py
|- djangoProject/
    |- settings_site1.py
    |- settings_site2.py
    |- settings_site3.py
    |- wsgi_site1.py
    |- wsgi_site2.py
    |- wsgi_site3.py
|- site1_app/
    |- models.py
    |- views.py
    |- urls.py
|- site2_app/
    |- models.py
    |- views.py
    |- urls.py
|- site3_app/
    |- models.py
    |- views.py
    |- urls.py
设置\u site1.py(示例)

wsgi_site1.py(示例)

但是说实话。。。如果您只创建一个带有多个django项目的virtualenv,那么所有这些都更容易实现。这样,您就不必对应用程序进行太多隔离:

projectEnv
|- bin/
|- include/
|- lib/
|- project1/
    |- manage.py
    |- project1/
|- project2/
    |- manage.py
    |- project2/
|- project3/
    |- manage.py
    |- project3/
无论采用哪种方式,我认为没有必要考虑让它们都在同一个进程下运行。Django不是设计来做这件事的。它允许您通过sites框架在同一个项目上为不同的站点运行多个进程

此项目结构适用于Django 1.4,但概念保持不变

您可以完成所有这些,只是不需要一个过程。为您的项目创建一个VirtualNV,它可以存储您需要的每个库的共享集。然后为每个站点创建不同的设置文件,每个站点加载不同的django应用程序,所有这些应用程序都位于项目中:

djangoProject
|- bin/
|- include/
|- lib/
|- manage.py
|- djangoProject/
    |- settings_site1.py
    |- settings_site2.py
    |- settings_site3.py
    |- wsgi_site1.py
    |- wsgi_site2.py
    |- wsgi_site3.py
|- site1_app/
    |- models.py
    |- views.py
    |- urls.py
|- site2_app/
    |- models.py
    |- views.py
    |- urls.py
|- site3_app/
    |- models.py
    |- views.py
    |- urls.py
设置\u site1.py(示例)

wsgi_site1.py(示例)

但是说实话。。。如果您只创建一个带有多个django项目的virtualenv,那么所有这些都更容易实现。这样,您就不必对应用程序进行太多隔离:

projectEnv
|- bin/
|- include/
|- lib/
|- project1/
    |- manage.py
    |- project1/
|- project2/
    |- manage.py
    |- project2/
|- project3/
    |- manage.py
    |- project3/

无论采用哪种方式,我认为没有必要考虑让它们都在同一个进程下运行。Django不是设计来做这件事的。它允许您通过sites框架在同一个项目上为不同的站点运行多个进程

“一个Django实例”是指一个代码库(或项目),还是一个进程/线程?您能解释一下为什么要这样做吗?没有直接的方法可以做到这一点,而且。。我不想每次都为新站点安装和配置第三方库。cpu/磁盘的保存也很重要。如果是这样,为什么不在同一个项目环境中对不同的应用程序使用不同的设置文件呢?使其成为单个进程的重点是什么?设置文件不必命名为
settings.py
。这只是默认情况。您可以随意调用它,然后在您的wsgi应用程序中设置它,您的Web服务器将使用该应用程序启动django实例。您所说的“一个django实例”是指一个代码库(或项目),还是一个进程/线程?您能解释一下为什么要这样做吗?没有直接的方法可以做到这一点,而且。。我不想每次都为新站点安装和配置第三方库。cpu/磁盘的保存也很重要。如果是这样,为什么不在同一个项目环境中对不同的应用程序使用不同的设置文件呢?使其成为单个进程的重点是什么?设置文件不必命名为
settings.py
。这只是默认情况。您可以随意调用它,然后在您的wsgi应用程序中设置它,您的Web服务器将使用该应用程序启动django实例。