You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Render免费层部署Django API持续出现400 Bad Request错误

解决Render部署Django API出现400 Bad Request的问题

以下是针对该问题的排查和解决步骤:

  • 配置SECURE_PROXY_SSL_HEADER
    Render作为反向代理服务会通过X-Forwarded-Proto头传递真实请求协议,Django默认不识别此头,会将HTTPS请求判定为不安全,进而返回400错误。在settings.py中添加以下配置:
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
  • 校验环境变量格式
    确保Render环境面板中的变量格式符合Django要求:

    • ALLOWED_HOSTS:填写不带协议的Render域名(如your-app-name.onrender.com),多域名用逗号分隔,不要包含https://
    • CSRF_TRUSTED_ORIGINS:必须包含完整协议和域名(如https://your-app-name.onrender.com),多域名同样用逗号分隔
    • 若环境变量使用空格而非逗号分隔,需在settings.py中指定分隔符:
      ALLOWED_HOSTS = env.list("ALLOWED_HOSTS", sep=" ")
      CSRF_TRUSTED_ORIGINS = env.list("TRUSTED_ORIGINS", sep=" ")
      
  • 确认根路由配置
    虽然400错误通常与路由无关,但如果根路径/无对应视图处理,也可能引发异常。检查urls.py是否有根路由配置,示例:

from django.urls import path
from django.http import HttpResponse

urlpatterns = [
    path('', lambda request: HttpResponse('API 运行中'), name='home'),
]
  • 手动重启Render服务
    环境变量或配置更新后,需在Render面板中手动重启服务,确保新配置生效。

内容的提问来源于stack exchange,提问作者El Barto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 06:27:38