Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.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
Python 如何解决连接到服务器上运行的virtualenv/django时被拒绝的错误_Python_Django_Ubuntu_Virtualenv_Putty - Fatal编程技术网

Python 如何解决连接到服务器上运行的virtualenv/django时被拒绝的错误

Python 如何解决连接到服务器上运行的virtualenv/django时被拒绝的错误,python,django,ubuntu,virtualenv,putty,Python,Django,Ubuntu,Virtualenv,Putty,我已经在ubuntu服务器的用户区安装了virtualenv和Django。一切似乎都安装正确,当我使用python manage.py runserver启动服务器时,我收到以下消息,似乎是正确的: Performing system checks... System check identified no issues (0 silenced). You have 15 unapplied migration(s). Your project may not work properly

我已经在ubuntu服务器的用户区安装了virtualenv和Django。一切似乎都安装正确,当我使用
python manage.py runserver
启动服务器时,我收到以下消息,似乎是正确的:

Performing system checks...

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes,                                                                       sessions.
Run 'python manage.py migrate' to apply them.

January 10, 2019 - 16:38:32
Django version 2.1.5, using settings 'form01.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
问题是,当我在浏览器中转到时,我得到的是一个ERR_CONNECTION_densed,而不是Django安装成功页面


我希望在上看到Django successful install(Django successful安装)屏幕,但得到的却是ERR_CONNECTION_densed(连接被拒绝)。

尝试将settings.py中的allowed hosts(允许的主机)设置为'*'

ALLOWED_HOSTS = ['*']

如果您在本地机器上使用127.0.0.1,那么您不只是在本地机器上而不是在运行django的服务器上查找django安装吗?可能是你的连接被拒绝的原因。 如果您的服务器上有浏览器,您应该能够进入服务器,查看它是否返回您正在寻找的Django Successful installation页面。
如果您没有在服务器上安装浏览器,那么我认为您需要在应用程序中安装一个设置文件,上面提到的允许的_HOSTS=['*'],或者允许的_HOSTS=['server ip address']。然后,您应该能够使用ip地址从本地计算机访问它:8000/

问题在于
virtualenv
,它以某种方式阻止了连接(无法找到)。我停用了
virtualenv
,并使用
python3 manage.py运行服务器0.0.0.0:8000
启动了该应用程序。应用程序应该可以通过
http://[ip]:8000
访问,其中
ip
ipconfig getifaddr en0
命令返回的内容

您还可以使用
gunicorn
托管应用程序&
nginx
来交付静态文件(因为gunicorn不处理这个问题)。这将允许继续使用
virtualenv
,但需要使用更多的软件

解决这个问题的方法(Django 3.1.6)是将
'*'
添加到
myproject/setting.py中的
ALLOWED\u HOSTS=[]
并像这样启动服务器:

python manage.py runserver 0:8000
127.0.0.1
localhost
的其他组合都不起作用,即使是
允许的_HOSTS=['*']


Ubuntu 20.04。

浏览器是否与
运行服务器运行在同一台机器上?@Alasdair浏览器运行在我的本地机器上,而运行服务器运行在服务器上如果您运行
python manage.py运行服务器
,则它将仅从本地服务器上可用。您可以使用ssh调查端口转发。如果您搜索远程访问Django runserver,您将看到使用
manage.py runserver 0.0.0.0:8000的建议,但这可以使您的站点可以访问整个internet,这是不合适的,因为runserver不是生产服务器。另外,请确保通过运行“python manage.py migrate”来迁移数据。我这样做了,不幸的是,我收到了相同的错误。这可能是防火墙问题吗?我的本地机器在我雇主的网络上,有适当的安全措施。我不认为这是防火墙问题,因为我可以通过https://(MyServerIPAddress)访问Apache2 Ubuntu默认页面。如果https://(MyServerIPAddress)起作用,您似乎在服务器上运行SSL证书。这可能是为什么ip地址:8000/不存在的问题的一部分。我建议您尝试https://(MyServerIPAddress):8000/看看会发生什么。