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

Django主urls.py引入应用urls.py路由时url导入错误解决

报错原因

该报错是因为你使用的Django版本≥4.0,从Django 4.0开始,官方正式移除了django.conf.urls模块下的url方法。旧版本中url是正则路由函数re_path的别名,新版本中无法再通过原路径导入使用。
另外你贴出的Post/urls.py代码中,urlpatterns列表前存在多余缩进,这也会触发Python语法错误,修改时需要一并修正。

修复方案

主路由文件blog/urls.py的代码不需要调整,仅修改Post/urls.py即可,有两种可选修改方式:

方式一:替换为re_path(完全兼容原有正则路由规则,无需修改匹配表达式)

将原有的url导入替换为从django.urls导入re_path,同时删除urlpatterns前的多余缩进,修改后代码如下:

from django.urls import re_path
from . import views

urlpatterns = [
    re_path(r'^$',views.all_posts, name='all_posts'),
    re_path(r'^(?P<id>\d+)$',views.post, name='post'),
]

方式二:使用新版path语法(官方推荐,可读性更强)

Django 2.0之后推出的path方法支持内置路径转换器,不需要写正则即可完成常见参数匹配,更易维护,修改后代码如下:

from django.urls import path
from . import views

urlpatterns = [
    path('',views.all_posts, name='all_posts'),
    path('<int:id>/',views.post, name='post'),
]

注意:path('<int:id>/', ...)写法中,<int:id>会自动匹配数字类型的id参数,路由末尾添加斜杠是Django官方推荐的写法,可避免框架默认的APPEND_SLASH配置触发不必要的重定向。

修改完成后重启Django服务即可正常加载路由。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 22:30:42