我正在遵循 django 教程:虚拟环境中的版本 1.8、Ubuntu 10.04、python 3.4。 我似乎在我的 Ubuntu 服务器上创建了一个 django 项目(yatest),然后启动了开发服务器:
(v1)cj@drop1:~/www/yatest$ python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
August 09, 2015 - 04:37:33
Django version 1.8.3, using settings 'yatest.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
但是当我浏览到 http://myserver:8000 时,我得到的所有响应都是“ERR_EMPTY_RESPONSE”。
这是创建应用程序之前教程的第一部分。在本教程的早期阶段,它没有提到我可以检查的任何错误日志。 我的 telnet 客户端没有说任何崩溃,并且“ctl-c”将毫无抱怨地关闭服务器进程。
使用 netstat -lntp 我验证没有其他进程正在使用端口 8000。我没有安装 Apache。 我确实安装了gunicorn和nginx,但两者都已停止并且在教程中尚未使用。
我对 Linux 还很陌生;我可以使用一些帮助查找错误日志或其他调试工具来解决这个问题。 我毫不怀疑我错过了一些基本的操作系统设置或启用 TCP 访问的东西等..
谢谢 克拉克
发现我的错误。 当在专用服务器上启动 dev django 服务器时,必须在命令中包含专用服务器的地址。 当在与浏览器相同的计算机上启动开发服务器时,不需要这样做。所以而不是
$python manage.py runserver
你必须跑
$python manage.py runserver <server ip>:8000
。
所以这是我在堆栈交换上不光彩的开始。 你什么也没看见! :P
如果您在虚拟环境中本机运行,则需要指定端口和地址:
python manage.py runserver 127.0.0.1:8000
对于容器来说,监听所有地址是最简单的:
python manage.py runserver 0.0.0.0:8000
对于在 docker 环境中使用 PyCharm 的任何人,还值得了解的是,PyCharm 将覆盖您的
docker-compose
配置,以更改 runserver
命令以绑定到 Host
窗口中 Run/Debug Configurations
选项中指定的端口。
如果您想使用调试器等,请确保将主机设置为
0.0.0.0
,将端口设置为 8000
。
如果你不想麻烦地确定服务器IP(即当你使用容器时),你可以监听0.0.0.0:8000
python manage.py runserver 0.0.0.0:8000
我也遇到了同样的问题,但出于不同的原因,所以-万一其他人的情况和我一样奇怪......
我在 django-girls 教程中一直得到空洞的回复。
我这样做是为了了解 Python/Django 的基础知识,因为我正在专业地开发一个使用它们的项目。
我没有意识到的是,我在工作中打开了一个容器(如在 docker 容器中),这在某种程度上破坏了本地映射。 具体原因我还没有弄清楚。 这些容器没有映射到端口 8000 - 据我所知,它们只访问了 5432 和 8443。 (这是容器的启动输出。)
2024-07-02 10:44:58.627 UTC [1] LOG: starting PostgreSQL 16.1 (Debian 16.1-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2024-07-02 10:44:58.689 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
2024-07-02 10:44:58.689 UTC [1] LOG: listening on IPv6 address "::", port 5432
2024-07-02 10:44:58.697 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-07-02 10:44:58.709 UTC [29] LOG: database system was shut down at 2024-07-02 10:43:39 UTC
2024-07-02 10:44:58.746 UTC [1] LOG: database system is ready to accept connections
[2024-07-02 10:44:59 +0000] [1] [INFO] Starting gunicorn 22.0.0
[2024-07-02 10:44:59 +0000] [1] [INFO] Listening at: https://0.0.0.0:8443 (1)
[2024-07-02 10:44:59 +0000] [1] [INFO] Using worker: gthread
[2024-07-02 10:44:59 +0000] [7] [INFO] Booting worker with pid: 7
[2024-07-02 10:44:59 +0000] [8] [INFO] Booting worker with pid: 8
无论如何,以防万一其他人被这个绊倒。 停止容器修复了空响应。