• django 路由详解(五)路由重定向


    路由重定向

    首先说一下什么是重定向?在浏览器访问某个网页的时候,这个网页不提供响应内容,而是自动跳转到其他网页,由其他网页来生成响应内容。

    在django的重定向有两种方式:第一种方式是路由重定向;第二种方式是自定义视图的重定向。路由重定向是使用djanog内置的视图类RedirectView实现的,默认支持http的get请求;自定义视图的响应状态设置重定向,能根据开发需求自行定义。

     在myApp的urls.py中,引入RedirectView视图类,然后通过as_view()方法将视图进行实例化,参数url用于设置跳转的路由地址。如下:

    #myApp urls.py
    
    from operator import index
    from django.urls import path,re_path
    from . import views
    from django.views.generic import RedirectView
    
    urlpatterns = [
        path("<year>/<int:month>/<slug:day>",views.mydate,name="mydate"),
        path("index",views.index,name="index"),
        #设置路由当访问index路由时,跳转到当前页面
        path("goToPage",RedirectView.as_view(url="index"),name="goToPage")
    ]

    在myApp应用下views.py视图引入redirect函数实现网页重定向。如下:

    from django.shortcuts import render
    from django.http import HttpResponse
    from django.shortcuts import reverse
    from django.urls import resolve
    from django.shortcuts import redirect
    
    # Create your views here.
    
    def mydate(request,year,month,day):
        return HttpResponse(str(year)+"-"+str(month)+"-"+str(day))
    
    def index(request):
        kwargs = {"year":2022,"month":4,"day":10}
        args = ["2022","04","03"]
        #使用redirect将页面重定向到新生成的地址
        return redirect(reverse("myApp:mydate",args=args))

    在浏览器中访问:http://127.0.0.1:8000/goToPage,页面就会重定向到index路由地址。

  • 相关阅读:
    Oracle Merge into
    查询 null 记录
    删除 eclipse 插件
    vs 密钥
    视频网站建设
    eclipse 版本 查看
    让数据库变快的十个建议
    c# WebBrowser 操作
    svn 代码合并
    Android开发者应该深入学习的10个开源应用项目
  • 原文地址:https://www.cnblogs.com/JcHome/p/16097143.html
Copyright © 2020-2023  润新知