栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Django3.0解决反向解析报错

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django3.0解决反向解析报错

一、问题出现

        参考Django教学视频做到反向解析步骤时报错。代码如下:

        1. 项目总路由 MyBlog/urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('users/', include('users.urls')),
    path('', include('blog.urls'))
]

        2. 应用子路由 blog/urls.py

urlpatterns = [
    path('', views.index, name='index'),
    path('test/', views.test, name='test'),
]

        3. 应用视图文件 blog/views.py

def index(request):
    return redirect(reverse('test')) # 首页重定向

def test(request):
    return HttpResponse('test')

       报错信息:

NoReverseMatch at /
Reverse for 'test' not found. 'test' is not a valid view function or pattern name.

 二、解决方案

        给应用指定一个app_name,并在项目总路由中为include函数配置namespace为应用名称app_name,最后在应用视图文件中使用“应用的namespace:重定向url的name”的格式实现反向解析。修改后的代码如下:

        1. 项目总路由 MyBlog/urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('users/', include('users.urls')),
    path('', include('blog.urls', namespace='blog'))
]

        2. 应用子路由 blog/urls.py

app_name = 'blog'   # 定义一个命名空间,用来区分不同应用之间的链接地址
urlpatterns = [
    path('', views.index, name='index'),
    path('test/', views.test, name='test'),
]

        3. 应用视图文件 blog/views.py

def index(request):
    return redirect(reverse('blog:test'))


def test(request):
    return HttpResponse('test')

        修改后的运行结果:

参考链接: django3.0.4反向解析_sugar-CSDN博客一、反向解析的目的当某一个url配置的地址发生变化的时候,页面上使用反向解析生成的地址不需要发生变化,根据url正则表达式的配置生成url二、配置步骤1.在项目的urls文件中包含具体应用的urls文件制定他的namespace,需要注意的是:include()这个函数中是两个参数,一个arg,一个namespace,参数arg是一个元组,元组中一个是地址,一个是app的名字,第二个name...https://blog.csdn.net/weixin_43844838/article/details/105714071
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/444916.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号