Python3 Django URL文件使用三引号注释导致语法错误求助
为什么你的三引号注释会导致Django URL语法错误?
嗨,我来帮你搞清楚这个问题~你遇到的语法错误,核心原因是Python里的三引号('''/""")并不是注释语法,而是用来定义多行字符串的字面量,这和你想的不一样!
问题出在哪?
你把'''comment here'''直接放在了urlpatterns列表里,这个列表里的元素应该都是path()函数调用的结果。而三引号在这里会被Python解析成一个字符串对象,相当于你在列表里插入了一个不属于URL配置的元素。更关键的是,你的代码里这个字符串后面没有加逗号,导致Python无法正确识别列表元素的分隔,直接抛出了语法错误。
看一下你出错的代码片段:
urlpatterns = [ path('',views.index, name="index"), '''comment here''' path('photo/',views.indexPhoto, name="indexPhoto"), ... ]
这里'''comment here'''后面没有逗号,Python会尝试把它和后面的path(...)连在一起解析,自然就会报invalid syntax了。
正确的注释方式
Python里只有两种标准注释方式:
- 单行注释:用
#开头,这是最常用的行内注释方式 - 文档字符串:用三引号包裹,但只能放在模块、类、函数/方法的开头,用来描述它们的功能(本质还是字符串,但会被工具识别为注释)
所以你要在URL列表里加注释,应该改成这样:
单行注释示例
from django.urls import path from . import views urlpatterns = [ path('',views.index, name="index"), # comment here 这是正确的单行注释 path('photo/',views.indexPhoto, name="indexPhoto"), path('photo/add/',views.addPhoto, name="addPhoto"), path('photo/insert',views.insertPhoto, name="insertPhoto"), ]
多行注释示例
如果需要多行注释,给每一行都加#即可:
from django.urls import path from . import views urlpatterns = [ path('',views.index, name="index"), # 这是第一行注释 # 这是第二行注释 path('photo/',views.indexPhoto, name="indexPhoto"), path('photo/add/',views.addPhoto, name="addPhoto"), path('photo/insert',views.insertPhoto, name="insertPhoto"), ]
再补个小知识点
三引号的正确用法是定义多行字符串,比如:
welcome_message = ''' 欢迎来到我的网站! 这里有很多好看的照片~ '''
或者作为文档字符串:
def indexPhoto(request): '''处理照片首页的请求,返回照片列表页面''' # 函数逻辑...
这样解释应该就清楚啦,以后写注释记得用#哦!
内容的提问来源于stack exchange,提问作者SHENQIDECAONIMA Teddy
相关产品推荐
相关产品推荐

