Django redirect()函数实现页面重定向

2024-06-09 1430阅读

1,通过路由反向解析进行重定向

1.1 添加视图函数

myshop/app2/views.py

from django.http import HttpResponse
from django.shortcuts import render
from django.urls import reverse
def index(request):
    return HttpResponse("app2 的index")
# 反向解析
def url_reverse(request):
    # 使用reverse()方法反向解析
    print('解析结果:'+ reverse("app2_url_reverse"))  #  使用reverse()方法反向解析 ,reverse("app2_url_reverse") 对应urls的 name='app2_url_reverse'
    return render(request, "2/url_reverse.html")
def test_get(request):
    print(request.get_host()) # 域名加端口
    print(request.build_absolute_uri()) # 获取完整的请求URI,包括查询字符串
    print(request.path) # 获取访问路径,不含参数
    print(request.get_full_path()) # 获取访问路径,不含参数
    print(request.method) # 获取请求中使用的HTTP方式(POST/GET)
    print(request.GET)  # 获取GET请求的参数
    print(request.META["HTTP_USER_AGENT"]) # 用户浏览器的user-agent字符串
    print(request.META["REMOTE_ADDR"]) # 客户端IP地址
    print(request.GET.get('username')) # 获取get参数
    return HttpResponse("")
# 获取请求中的使用HTTP方式(POST/GET)
def test_post(request):
    print(request.method)
    print(request.POST.get('username'))
    return render(request, '2/test_post.html')
def test_response(request):
    response = HttpResponse()
    response.write("

hello django

") response.write("
") response.write(response.content) response.write("
") response.write(response['Content-Type']) response.write("
") response.write(response.status_code) response.write("
") response.write(response.charset) response.write("
") return response def test_render(request): return render(request, '2/test_render.html', {'info':'hello django'}, content_type='text/html; charset=utf-8') from django.shortcuts import redirect def test_redirect_views(request): return redirect('test_render')

Django redirect()函数实现页面重定向

1.2 添加路由地址

myshop/app2/views.py

from django.urls import path, re_path
from . import views
urlpatterns = [
    path('index', views.index, name='index'),
    path('url_reverse', views.url_reverse, name='app2_url_reverse'), #  使用reverse()方法反向解析 ,name对于视图的reverse("app2_url_reverse")
    path('test_get', views.test_get, name='test_get'),
    path('test_post', views.test_post, name='test_post'),
    path('test_response', views.test_response, name='test_response'),
    path('test_render', views.test_render, name='test_render'),
    path('test_redirect_views', views.test_redirect_views, name='test_redirect_views'),
]

Django redirect()函数实现页面重定向

1.3 访问页面

http://127.0.0.1:8000/app2/test_redirect_views 

重定向至http://127.0.0.1:8000/app2/test_render

Django redirect()函数实现页面重定向

 2,通过绝对的或相对的URL,让浏览器跳转到指定的URL进行重定方向

2.1 添加视图函数

myshop/app2/views.py

from django.http import HttpResponse
from django.shortcuts import render
from django.urls import reverse
def index(request):
    return HttpResponse("app2 的index")
# 反向解析
def url_reverse(request):
    # 使用reverse()方法反向解析
    print('解析结果:'+ reverse("app2_url_reverse"))  #  使用reverse()方法反向解析 ,reverse("app2_url_reverse") 对应urls的 name='app2_url_reverse'
    return render(request, "2/url_reverse.html")
def test_get(request):
    print(request.get_host()) # 域名加端口
    print(request.build_absolute_uri()) # 获取完整的请求URI,包括查询字符串
    print(request.path) # 获取访问路径,不含参数
    print(request.get_full_path()) # 获取访问路径,不含参数
    print(request.method) # 获取请求中使用的HTTP方式(POST/GET)
    print(request.GET)  # 获取GET请求的参数
    print(request.META["HTTP_USER_AGENT"]) # 用户浏览器的user-agent字符串
    print(request.META["REMOTE_ADDR"]) # 客户端IP地址
    print(request.GET.get('username')) # 获取get参数
    return HttpResponse("")
# 获取请求中的使用HTTP方式(POST/GET)
def test_post(request):
    print(request.method)
    print(request.POST.get('username'))
    return render(request, '2/test_post.html')
def test_response(request):
    response = HttpResponse()
    response.write("

hello django

") response.write("
") response.write(response.content) response.write("
") response.write(response['Content-Type']) response.write("
") response.write(response.status_code) response.write("
") response.write(response.charset) response.write("
") return response def test_render(request): return render(request, '2/test_render.html', {'info':'hello django'}, content_type='text/html; charset=utf-8') from django.shortcuts import redirect def test_redirect_views(request): return redirect('test_render') def test_redirect_url(request): return redirect('http://www.baidu.com')

Django redirect()函数实现页面重定向

2.2 添加路由地址

myshop/app2/urls.py

from django.urls import path, re_path
from . import views
urlpatterns = [
    path('index', views.index, name='index'),
    path('url_reverse', views.url_reverse, name='app2_url_reverse'), #  使用reverse()方法反向解析 ,name对于视图的reverse("app2_url_reverse")
    path('test_get', views.test_get, name='test_get'),
    path('test_post', views.test_post, name='test_post'),
    path('test_response', views.test_response, name='test_response'),
    path('test_render', views.test_render, name='test_render'),
    path('test_redirect_views', views.test_redirect_views, name='test_redirect_views'),
    path('test_redirect_url', views.test_redirect_url, name='test_redirect_url'),
]

Django redirect()函数实现页面重定向

2.3 访问页面

http://127.0.0.1:8000/app2/test_redirect_url

重定向至百度一下,你就知道 (baidu.com)

Django redirect()函数实现页面重定向

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]