解决Django接口无法通过本机IP访问的问题
本文详细解析Django默认仅允许localhost访问的限制,提供通过修改settings.py中ALLOWED_HOSTS为'*'以及启动命令指定0.0.0.0地址的解决方案,涵盖CMD命令行与PyCharm配置两种常见场景,并补充防火墙关闭及老版本兼容写法,帮助用户实现本机IP及局域网其他设备的正常访问。
Django默认访问限制与解决方案概述
在Django开发环境中,默认配置下接口仅能通过localhost或127.0.0.1进行访问,若尝试使用本机实际IP地址访问则会遭遇拒绝。
修改settings.py配置
要实现通过本机IP访问,首先需调整Django项目的settings.py配置文件。
ALLOWED_HOSTS = "*"
命令行启动配置
接下来,在命令行终端中执行启动命令。
python manage.py runserver 0.0.0.0:8080

PyCharm运行配置调整
若使用PyCharm进行开发,则需在运行配置中进行相应调整。
在Run/Debug Configurations设置中,将Host参数修改为0.0.0.0。

Django允许外部IP访问补充说明
此外,关于Django允许外部IP访问还有以下补充知识。
防火墙设置
首先,需确保服务器防火墙已关闭,以允许外部连接。
service iptables stop
服务启动与ALLOWED_HOSTS配置
其次,对Django服务进行特定配置。
在启动Django服务时,需指定0.0.0.0:xxxx作为监听地址和端口,例如:
python manage.py runserver 0.0.0.0:8000
同时,在settings配置文件中将ALLOWED_HOSTS设置为空列表[]。
将其修改为:
ALLOWED_HOSTS = ['*'],
对于老版本Django,可能需要添加逗号,即:
ALLOWED_HOSTS = ['*',]。

完成上述配置后,其他机器即可通过指定的IP和端口号访问Django服务,也可根据需求限制特定机器的访问权限。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









