Python新手咨询Django URL路由'[ was not closed'错误原因
Django URL路由语法错误原因及解决
你的代码报错核心是把path函数调用写成了赋值语句,违反了Python列表的语法规则。
Python的列表[]内部只能存放合法的表达式(比如函数调用、变量、字符串这类字面量),而path=("",views.index)是赋值操作,属于语句,不能直接放在列表里。解释器遇到这种非法语法时,无法正确解析列表的结构,就会抛出“[ was not closed”的错误——本质是语法错误导致解析失败,并非真的没写闭合的]。
正确的写法是直接调用path函数,把函数返回值放进列表:
from django.urls import path from . import views urlpatterns = [ path("", views.index), path("/index", views.index) ]
你说赋值给变量后能正常运行,是因为此时列表里放的是变量(属于合法表达式),比如:
from django.urls import path from . import views index_route = path("", views.index) another_index_route = path("/index", views.index) urlpatterns = [index_route, another_index_route]
这种写法语法合规,所以能正常执行。
内容的提问来源于stack exchange,提问作者ftdeveloper
相关产品推荐
相关产品推荐

