Django url反向解析 reverse()

需求:在Django博客开发中,当点击一篇文章的继续阅读,展开整篇文章

我们要获取这样的url:......./post/3

现在利用reverse()方法获取url:

class Article(models.Model):

    def get_absolute_url(self):
        return reverse('blog:detail', kwargs={'pk': self.pk})

第一个参数:" blog:detal ":  blog 应用下的 name = detail 的函数。

detail 对应的正则表达式 :post /(?P<pk>[0-9]+)/

第二个参数:self.pk会替代正则表达式里面的pk

然后 reverse 函数区解析视图函数对应的URL。


  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
`reverse`反向解析器是Django框架中的一个重要组成部分,它可以将URL模式名称反向解析为对应的URL路径。其用法如下: 在`urls.py`中定义一个URL模式名称: ```python from django.urls import path from . import views urlpatterns = [ path('articles/', views.article_list, name='article-list'), path('articles/<int:pk>/', views.article_detail, name='article-detail'), ] ``` 在`views.py`中使用`reverse`函数将URL模式名称`article-list`解析为对应的URL路径: ```python from django.urls import reverse from django.shortcuts import render, get_object_or_404 from .models import Article def article_list(request): articles = Article.objects.all() context = {'articles': articles} url = reverse('article-list') # 将URL模式名称'artcle-list'解析为对应的URL路径 return render(request, 'article_list.html', context) def article_detail(request, pk): article = get_object_or_404(Article, pk=pk) context = {'article': article} url = reverse('article-detail', args=[pk]) # 将URL模式名称'article-detail'解析为对应的URL路径,并传递参数pk return render(request, 'article_detail.html', context) ``` 可以看到,`reverse`函数接收一个URL模式的名称作为参数,并返回对应的URL路径。如果URL模式中包含参数,需要使用`args`参数将参数传递给`reverse`函数。在视图函数中,可以将解析后的URL路径返回给模板,或者使用`redirect`函数将请求重定向到解析后的URL路径。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值