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

启动Django2.0项目执行python3 manage.py runserver时遇TypeError报错

解决Django 2.0启动时url_patterns不可迭代的异常

兄弟,这个报错我太熟了!本质就是Django在解析URL配置时,期望urlpatterns是一个可迭代的列表/元组,但你不小心把它赋值成了一个模块对象,导致遍历的时候直接报错。咱们一步步来搞定:

第一步:检查项目根目录的urls.py

这是最常见的出错点——很多人会犯这个低级错误:

  • ❌ 错误写法(直接把include()的结果赋值给urlpatterns):
    from django.urls import include
    
    urlpatterns = include('myapp.urls')  # 这里直接返回的是模块,不是可迭代列表!
    
  • ✅ 正确写法(把include()放进列表里):
    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('', include('myapp.urls')),  # 必须包裹在列表里,保证可迭代
    ]
    

第二步:检查应用内的urls.py

如果根目录的配置没问题,那就要看你自己的应用urls.py了:

  • 确保应用的urls.py里确实定义了urlpatterns,并且是一个列表/元组:
    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('', views.home, name='home'),
        # 其他URL规则...
    ]
    
  • 要是应用的urls.py里没定义urlpatterns,或者写成了其他非可迭代的变量类型,也会触发同样的错误。

关于修复时触发的二次异常

如果你在改完上面的配置后又出现新异常,大概率是其他小问题:比如拼写错误(比如把urlpatterns写成url_patterns)、视图函数导入错误、路径参数写错等等。这时候别慌,盯着新的报错信息看,通常都会明确指出哪行代码有问题,顺着排查就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:55:03