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

news2024/11/28 16:29:34

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("<h1>hello django</h1>")
    response.write("<br>")
    response.write(response.content)
    response.write("<br>")
    response.write(response['Content-Type'])
    response.write("<br>")
    response.write(response.status_code)
    response.write("<br>")
    response.write(response.charset)
    response.write("<br>")

    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')

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'),

]

1.3 访问页面

http://127.0.0.1:8000/app2/test_redirect_views 

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

 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("<h1>hello django</h1>")
    response.write("<br>")
    response.write(response.content)
    response.write("<br>")
    response.write(response['Content-Type'])
    response.write("<br>")
    response.write(response.status_code)
    response.write("<br>")
    response.write(response.charset)
    response.write("<br>")

    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')


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'),
]

2.3 访问页面

http://127.0.0.1:8000/app2/test_redirect_url

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1804743.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QField如何打开工程或数据文件

Field有个文件选择器&#xff0c;允许从本地设备打开工程。如果想从云端打开文件&#xff0c;请参阅 QFieldCloud 。 注意&#xff1a;请注意&#xff0c;卸载QField时&#xff0c;应用程序文件夹将被删除&#xff0c;而更新则不会。 导入并打开本地工程 QField界面 当转到 …

Unity DOTS技术(十五) 物理系统

要解决性能的瓶颈问题,在DOTS中我们将不再使用Unity自带的物理组件. 下面来分享一下在DOTS中当如何使用物理插件. 一.导入插件 在使用DOTS系创建的实体我们会发现,游戏物体无法受物理系统影响进行运动.于是我们需要添加物理系统插件. 1.打开Package Manager > 搜索插件Uni…

【NI国产替代】产线综测仪,高速高精度测量的示波器模块与任意波形发生器模块,多样化 DUT 供电;高精度万用表模块

Xilinx ZYNQ-7000 系列 FPGA 控制模块多样化 DUT 供电&#xff1b;高精度万用表模块高速高精度测量的示波器模块与任意波形发生器模块可选配射频开关与音频信号源和音频分析仪模块可快速部署的测试平台软件&#xff0c;支持测试计划导入、开发、执行管理具有良好的扩展性&#…

1.2-自然语言的分布式表示-基于计数的方法

本篇笔记对应的视频链接为&#xff1a; 3-基于计数的方法表示单词-将文字转换成编号的预处理工作_哔哩哔哩_bilibili&#xff1b;4-基于计数的方法表示单词-使用共现矩阵进行单词的分布式表示_哔哩哔哩_bilibili&#xff1b;5-基于计数的方法表示单词-单词之间相似度计算_哔哩哔…

超详解——python数字和运算_——小白篇

目录 1.的位运算 2. 常用内置函数/模块 math模块&#xff1a; random模块&#xff1a; decimal模块&#xff1a; 3.内置函数&#xff1a; 总结&#xff1a; 1.的位运算 位运算是对整数在内存中的二进制表示进行操作。Python支持以下常见的位运算符&#xff1a; 按位与&…

openh264 场景变化检测算法源码分析

文件位置 openh264/codec/processing/scenechangedetection/SceneChangeDetection.cppopenh264/codec/processing/scenechangedetection/SceneChangeDetection.h 代码流程 说明&#xff1a; 通过代码流程分析&#xff0c;当METHOD_SCENE_CHANGE_DETECTION_SCREEN场景类型为时…

git 的基本操作 Master and branch的版本合并 @ VS 1019

前言&#xff1a; 在VS 2019有git 的可视化管理,但&#xff0c;感觉微软其实就是在git上包了一层。版本冲突后&#xff0c;还是要靠git 的命令行代码搞。本文记录了一次&#xff0c;branch和master的版本合并的过程。作为&#xff0c;后续的参考。 【注意&#xff0c;这个是一…

相机标定中一些细节--畸变模型和参数

张正友标定方法做相机标定的主要过程是先估计每张图片的单应性矩阵&#xff0c;然后通过这一系列的单应性矩阵估计出内外参数初值&#xff0c;最后再考虑畸变模型的加入进行非线性优化。同时优化内参、外参和畸变参使得重投影误差最小。 镜头的畸变表现出来的非线性关系&#…

处理异常不再困难-try-catch-finally和throw语句详解

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

《软件定义安全》之三:用软件定义的理念做安全

第3章 用软件定义的理念做安全 1.不进则退&#xff0c;传统安全回到“石器时代” 1.1 企业业务和IT基础设施的变化 随着企业办公环境变得便利&#xff0c;以及对降低成本的天然需求&#xff0c;企业始终追求IT集成设施的性价比、灵活性、稳定性和开放性。而云计算、移动办公…

《软件定义安全》之二:SDN/NFV环境中的安全问题

第2章 SDN/NFV环境中的安全问题 1.架构安全 SDN强调了控制平面的集中化&#xff0c;从架构上颠覆了原有的网络管理&#xff0c;所以SDN的架构安全就是首先要解决的问题。例如&#xff0c;SDN实现中网络控制器相关的安全问题。 1.1 SDN架构的安全综述 从网络安全的角度&…

算法训练营day04

一、24. 两两交换链表中的节点 题目链接&#xff1a;https://leetcode.cn/problems/swap-nodes-in-pairs/description/ 文章讲解&#xff1a;https://programmercarl.com/0024.%E4%B8%A4%E4%B8%A4%E4%BA%A4%E6%8D%A2%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E8%8A%82%E7%82%B9.h…

运维实用小脚本,登录即自动显示系统信息

今天给大家安利一个超级实用的Linux小技巧&#xff0c;让你每次登录终端时都能感受到满满的科技感和效率爆棚&#xff01; 你是否厌倦了每次手动检查系统状态&#xff0c;像内存使用、CPU负载这些繁琐操作&#xff1f;别担心&#xff0c;一个小调整&#xff0c;让这一切自动化…

当我拿到百度文心智能体大赛top1后,我又开发了...

目录 一、写在前面 二、代码助手 三、关于智能体 四、写在后面 一、写在前面 在不久前结束的文心智能体大赛&#xff08;第一期&#xff09;中&#xff0c;我有幸凭借一款名为恋爱助手的智能体斩获了大赛的桂冠。这个成绩&#xff0c;既是对我努力的认可&#xff0c;也是对…

YOLOv8_obb的训练、验证、预测及导出[旋转目标检测实践篇]

1.旋转目标检测数据集划分和配置 从上面得到的images和labels数据还不能够直接训练,需要按照一定的比例划分训练集和验证集,并按照下面的结构来存放数据,划分代码如下所示,该部分内容和YOLOv8的训练、验证、预测及导出[目标检测实践篇]_yolov8训练测试验证-CSDN博客是重复的…

linux本地搭建apt源

使用apt-mirror搭建 1.安装 apt-get install apt-mirror2.编辑配置文件 vi /etc/apt/mirror.list修改下载目录 set_base_path 后面改为下载镜像的目录&#xff0c;同时删除前面#号 添加同步的源&#xff0c;建议用国内的&#xff0c;速度快&#xff0c;我这里用的阿里云的镜…

调查显示各公司在 IT 安全培训方面存在差距

网络安全提供商 Hornetsecurity 最近进行的一项调查显示&#xff0c;许多组织的 IT 安全培训存在严重缺陷。 这项调查是在伦敦举行的 Infosecurity Europe 2024 期间发布的&#xff0c;调查发现 26% 的组织没有为其最终用户提供任何 IT 安全培训。 这些调查结果来自世界各地的…

网页中生成ZIP文件,Zip 压缩、解压技术在 HTML5 浏览器中的应用

JSZip 是一款可以创建、读取、修改 .zip 文件的 javaScript 工具。在 web 应用中&#xff0c;免不了需要从 web 服务器中获取资源&#xff0c;如果可以将所有的资源都合并到一个 .zip 文件中&#xff0c;这时候只需要做一次请求&#xff0c;这样既减少了服务器的压力&#xff0…

mysql 更改数据存储目录

先停止 mysql &#xff1a;sudo systemctl start/stop mysql 新建新的目录&#xff0c; 比如 /mnt/data/systemdata/mysql/mysql_data sudo chown -R mysql:mysql /mnt/data/sysdata/mysql/mysql_data sudo chmod -R 750 /mnt/data/sysdata/mysql/mysql_data 更改mysql.cnf…