首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Cookiecutter

Django Cookiecutter
EN

Stack Overflow用户
提问于 2018-01-17 19:07:02
回答 2查看 634关注 0票数 1

我正在尝试使用数字海洋服务器上的Cookiecutter。(不使用Docker)

我按照指示在Ubuntu 16上安装了Django,Postgres和Gunicorn。https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04

我无法通过允许的主机错误。

代码语言:javascript
复制
DisallowedHost at /
    Invalid HTTP_HOST header: '128.199.100.100:8000'. 
    You may need to add '128.199.100.100' to ALLOWED_HOSTS

我在production.py中进行了设置

代码语言:javascript
复制
ALLOWED_HOSTS = env.list ( 'DJANGO_ALLOWED_HOSTS', 
                       default = [ '128.199.100.100' ] )

我需要更改任何设置才能使其成为生产环境吗?

Cookiecutter站点上唯一的文档是针对pythonAnywere和Docker的。http://cookiecutter-django.readthedocs.io/en/latest/deployment-on-pythonanywhere.html

我只想要一个简单的DO安装。找不到任何文档?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-01-17 19:22:20

在这个阶段,您需要向您的ALLOWED_HOSTS添加'128.199.100.100:8000' (包括端口)。您可以在runserver命令中将其设置为环境变量:

代码语言:javascript
复制
ALLOWED_HOSTS = env.list ( 'DJANGO_ALLOWED_HOSTS', 
                   default = [ '128.199.100.100', '128.199.100.100:8000' ] )

或者您可以将其临时添加到您的设置中的default

代码语言:javascript
复制
DJANGO_ALLOWED_HOSTS=128.199.100.100:8000 ~/myproject/manage.py runserver 0.0.0.0:8000

最后,本教程将更改gunicorn以使用套接字文件,并且您将使用Nginx在端口80上访问网站,因此您的ALLOWED_HOSTS中不需要'128.199.100.100:8000'

票数 0
EN

Stack Overflow用户

发布于 2019-04-25 06:34:16

我也遇到过类似的问题,我相信我找到了解决方案。

如果您使用传递DJANGO_ALLOWED_HOST值的环境变量(部署时复制凭据的最安全方式)。

然后仔细查看定义主机允许的IP地址列表的语法。环境变量的语法与django环境变量完全不同,这让我感到困惑。

首先,我使用Python语法定义了DJANGO_ALLOWED_HOSTS

代码语言:javascript
复制
export DJANGO_ALLOWED_HOSTS="['localhost', '127.0.0.1', '192.168.1.110']"

这是完全不正确的,因为查看设置部分下的错误消息跟踪,我得到了以下ALLOWED_HOSTS值

代码语言:javascript
复制
ALLOWED_HOSTS   ["['localhost',", "' 127.0.0.1'"," ' 192.168.1.110']"

这只是意味着变量的解析采用了完全不同的语法。将django设置为逗号分隔的字符串也无法解决此问题

代码语言:javascript
复制
export DJANGO_ALLOWED_HOSTS="localhost, 127.0.0.1, 192.168.1.110"

解析结果如下所示,请注意第二个和第三个元素中的空格字符。

代码语言:javascript
复制
ALLOWED_HOSTS   ['localhost', ' 127.0.0.1', ' 192.168.1.110']

似乎解析地址值的逻辑是非常特殊的,并且是列出仅使用逗号作为分隔符的几个主机的唯一正确方法。

代码语言:javascript
复制
export DJANGO_ALLOWED_HOSTS="localhost,127.0.0.1,192.168.1.110"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48299612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档