Django 错误 code 400, message Bad request syntax

跟着Django做网页,搭好一个网页之后使用命令

python manage.py runserver

来打开服务器。

这时使用本机访问 http://127.0.0.1:8000/ 结果是正确的

但是开始搭建局域网的服务器时,使用命令

python manage.py runserver 0.0.0.0:8000

然后在其它电脑上访问报错:

[28/Apr/2016 09:55:01] code 400, message Bad HTTP/0.9 request type ('\x16\x03\x0
3\x00\x9b\x01\x00\x00\x97\x03\x03W!mH\xc0\xed1\x8f\x1f\x8e\x8d\xc4#\xd9\xa6\xa5\
xe7\x90\xdaQ\xa5\xa4\xf4#)\x03\xc0\xb1')
----------------------------------------
[Exception happened during processing of request from28/Apr/2016 09:55:01] code
400, message Bad HTTP/0.9 request type
('\x16\x03\x03\x00\x9b\x01\x00\x00\x97\x0
3\x03W!mH\xb3\x80(\x11\xd1BE\xbb\xf5\x00n\xfa\xa5HL\x0ed\xad\x13\x87')
 (----------------------------------------'192.168.9.233',
4615Exception happened during processing of request from) ('192.168.9.233', 4616
)

分析报错内容可以看出,已经接受到了对方电脑(192.168.9.233)的请求,但是request的语法不正确。查了一下,发现是因为浏览器写错了

应该是http:\\ ,而我写成了https:\\

所以浏览器发出的请求语法自然不正确了。


### 解决Django HTTP 400 Bad Request 错误 #### 修改 `ALLOWED_HOSTS` 设置 对于部署环境中的主机名或IP地址未被允许的情况,可以通过编辑项目的 `settings.py` 文件来修正。确保 `ALLOWED_HOSTS` 列表包含了所有预期会用来访问应用的有效域名或 IP 地址。 ```python # settings.py 中的配置应如下所示: ALLOWED_HOSTS = ['自己的服务器ip'] # 替换为实际使用的服务器 IP 或者域名[^1] ``` #### 调整模型字段定义 如果是在处理文件上传时遇到了此问题,则可能是由于指定了非法路径作为存储位置所致。应该调整 `upload_to` 参数指向项目内部的一个相对路径而非绝对路径,并且该路径应当位于应用程序的工作目录之下。 ```python from django.db import models class UserProfile(models.Model): avatar = models.ImageField( upload_to='uploads/', # 使用相对于 MEDIA_ROOT 的子目录 verbose_name=u'头像', blank=True, null=True ) ``` 注意:上述代码片段假设已经在 `settings.py` 中设置了合适的 `MEDIA_URL` 和 `MEDIA_ROOT` 变量[^2]。 #### 请求协议一致性 有时客户端发起的是 HTTPS 请求而服务端只监听了 HTTP 连接,反之亦然,这也会引发类似的错误。确认前端页面发出请求的方式与后端接收方式相匹配;如果是通过代理转发的话,请检查代理服务器的相关配置项是否正确设置。 #### 版本兼容性考量 针对某些特定版本下的特性支持情况,比如 Django 1.9 后不再提供对 `runfcgi` 命令的支持,因此建议升级至更新稳定版并采用推荐的标准 WSGI 接口来进行生产环境部署[^3]。 #### 处理多级域名解析 当存在多个不同级别的子域(如 kohang.com vs www.kohang.com),需保证这些记录均已正确添加到 DNS 系统中,并且在 `ALLOWED_HOSTS` 中也进行了相应的声明[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值