Django中不同域的不同设置



我有一个django项目,该项目将有多个实例,一个用于我的客户端,每个实例都有您自己的DB和一些自定义应用程序和您自己的域,但是所有这些都共享相同的源代码,唯一的区别是settings.py文件指向正确的db。

我知道我可以使用不同的虚拟主机来实现这一目标,指向不同的设置使用Apphe Apache和WSGI,但是就我而言,我将使用AWS Lambda和Zappa为我的客户提供此服务。

我想知道是否存在一种动态加载一些自定义设置的方法,具体取决于加载站点的域。

,既然您说要有多个实例,我猜这意味着一个客户=一个lambda 。您可以使用Zappa的功能将要扩展的主要Zappa配置部署到多个环境。在每个倾向环境中,您可以设置要使用的特定Django设置文件。

zappa_settings.json

{
    "common": {
        "aws_region": "eu-central-1",
        "profile_name": "default",
        "project_name": "zappa3",
        "runtime": "python3.6",
        "s3_bucket": "zappa-ewdnqwii5"
    },
    "client_1": {
        "extends": "common",
        "django_settings": "zappa3.settings.client_1",
        "domain": "client-1.com"
    },
    "client_2": {
        "extends": "common",
        "django_settings": "zappa3.settings.client_1",
        "domain": "client-2.com"
    }
}

您可以将settings.py转换为设置文件夹,并创建您想要添加的许多域设置。我将为公共设置创建base.py,然后每个具有特定设置的域都应导入base.py和其他域特定设置。

目录结构是:

  • 设置:

    • base.py
    • domain_1.py
    • domain_2.py
    • ...

当您加载域_1时,然后尝试使用python manage.py runserver --settings=settings.domain_1.py加载,request.meta['HTTP_HOST']可以为您提供域名。

相关内容

  • 没有找到相关文章

最新更新