Django reverse()反转url用法实例讲解

本文介绍了一个基于Django的博客项目的URL配置方式及视图处理逻辑,包括了项目的总URL配置、APP级别的URL配置以及视图函数的具体实现细节。文中详细解释了如何通过reverse函数进行URL反转来实现跳转逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、总urls.py内容如下:

from django.contrib import admin
from django.urls import path
from django.conf.urls import include

from myblog import views
urlpatterns = [
    # path('admin/', admin.site.urls),
    path('', views.index),
    path('myblog/', include('myblog.urls')),
]

2、APP中的urls.py如下:

from django.urls import path
from .views import *

urlpatterns = [
    path('login/', login, name='login'),
    # http://127.0.0.1:8000/myblog/detail/1/2/ 传参article_id 和 eid
    path('detail/<article_id>/<eid>/', article_detail, name='detail'),
]

3、APP下的views.py文件:

from django.shortcuts import render, reverse, redirect
from django.http import HttpResponse

def index(request):
    # 判断用户是否登录,有用户名跳到首页,没有跳到登录页面
    username = request.GET.get('username')
    if username:
        return HttpResponse("首页")
    else:
        # 1.写死的话, 修改代码时需要把, 所有路径找出来改成新的路径
        # login_url = 'myblog/login/'
        # 2、利用reverse函数反转url:找到urls.py中name='login'的路径
        # login_url = reverse('login')
        # 3、当reverse需要传参时
        login_url = reverse('detail', kwargs={'article_id': 1, 'eid': 2})
        return redirect(login_url)
def login(request):
    return HttpResponse("登录页面")

def article_detail(request, article_id, eid):
    text = '您的文章ID+eid是: %s' % article_id, eid
    return HttpResponse(text)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值