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

Django项目添加视图至urlpatterns时触发NameError错误求助

解决Django路由中NameError: name 'index' is not defined的问题

嘿,我一眼就揪出问题所在啦!你遇到的NameError完全是因为路由里的name参数格式写错了,和你调整的path路径没关系~

错误原因

在你的urls.py里,这一行代码:

path('', views.index, name=index),

这里的name=index是错误的——name参数需要接收的是字符串类型的路由别名,但你直接写了index,Python会把它当成一个变量去查找,可你根本没定义过叫index的变量,自然就抛出NameError了。

修正后的代码

把name=index改成name='index'(加上单引号,变成字符串)就搞定了,完整的urls.py应该是这样:

from django.contrib import admin
from django.urls import path
from first_app import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.index, name='index'),  # 这里把index改成'index'
]

额外提醒(避免踩其他坑)

  • 确保你已经在project/settings.py的INSTALLED_APPS里注册了first_app,不然导入视图时会报错:
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'first_app',  # 别忘了加这一行
    ]
    
  • 如果你想把路由改成first_app路径(比如访问http://localhost:8000/first_app才触发视图),只需要修改path的第一个参数即可,同时保持name参数是字符串:
    path('first_app/', views.index, name='index'),
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:32:26