0

我目前有 2 个域,我想通过使用 Apache(和 wsgi)共享一个 Django 项目我使用了我在这里找到的以下指南:http ://www.fir3net.com/Django/how-服务-多个域-from-within-a-single-django-project.html

注意:域 1 没有使用数据库,但域 2 使用了。我目前在主 settings.py 文件中配置了一个数据库。

我首先遇到的问题是找到了 domain1 的模板,但对于 domain2 却找不到它。经过一些故障排除后,我将 TEMPLATE_DIRs 添加到 domain2_settings.py 文件中。尽管我预计这会被主 settings.py 文件拾取。现在我收到一个错误,即 domain2 无法找到数据库,并且从调试输出中显示没有分配数据库。即使我希望从主 settings.py 文件中提取数据库设置。

这是我的布局的摘要:

/opt/
`-- django
    |
    `-- myproject
        |-- __init__.py
        |-- domain1
        |   |-- __init__.py
        |   |-- domain1.wsgi
        |   |-- domain1_settings.py
        |   |-- domain1_urls.py
        |   |-- models.py
        |   |-- tests.py
        |   |-- views.py
        |-- domain2
        |   |-- __init__.py
        |   |-- domain2.wsgi
        |   |-- domain2_settings.py
        |   |-- domain2_urls.py
        |   |-- models.py
        |   |-- tests.py
        |   |-- views.py
        |-- manage.py
        |-- settings.py
        |-- templates
        |   |-- domain1-base.html
        |   |-- domain2-base.html
        `-- urls.py

设置.py

[root@william myproject]# cat settings.py
# Django settings for myproject project.

DEBUG = False
TEMPLATE_DEBUG = DEBUG

ADMINS = (
    # ('Your Name', 'your_email@example.com'),
)

MANAGERS = ADMINS

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': '123',                      # Or path to database file if using sqlite3.
        'USER': '123',                      # Not used with sqlite3.
        'PASSWORD': '##########',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': ''                      # Set to empty string for default. Not used with sqlite3.
    },
}

domain2_settings.py

[root@william myproject]#  cat domain2/domain2_settings.py
from settings import *

DEBUG = True
TEMPLATE_DEBUG = DEBUG

SITE_ID = 2

ROOT_URLCONF = 'domain2.domain2_urls'

TEMPLATE_DIRS = (
        "/opt/django/myproject/templates"
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    # 'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    'domain2',
)

我是否以正确的方式进行此操作(即多个域、单个项目、apache 和使用单个数据库)?

4

1 回答 1

1

问题是我在 domain2 文件夹中仍然有一个 settings.py 和 urls.py 文件。一旦我删除了这些问题就解决了。

于 2013-04-15T13:05:59.597 回答