Backend - Django URL 路由 重定向 url编码解码

目录

一、url 的 <> 作用

(一)操作流程

(二)前端设置链接

1. 包括:

2. 比如

(三)后端匹配路由

1. 理解

2. 比如

(三)后端视图的 get( )的参数

1. 理解

2. 比如

二、路由重定向 HttpResponseRedirect

(一)重定向到当前操作界面(刷新该界面)

(二)重定向到指定界面

(三)重定向时,带参数

1. 指定跳转时

2. 获取时

三、重定向前,获取操作页面的路由

四、URL编码与解码,即quote() & unquote() 

(一)quote( ) 对路由url编码

1. 写法

2. 作用

(二)unquote( ) 对路由url解码

1. 写法

2. 作用


一、url 的 <> 作用

(一)操作流程

        前端界面templates点击链接跳转  >  url路由  >  views的kwargs

(二)前端设置链接

1. 包括:

        ajax的url值;select的option的value值;a标签的href值等

2. 比如

<a href='/url_lang/zh-hans/luobogan'></a>

(三)后端匹配路由

path('url_lang/<language>/<user>/', views_base.SetLang.as_view(), name='url_set_lang'),

1. 理解

        其中,< > 包裹的内容理解成一个字典的key,key对应的value是前端链接设定的值。

2. 比如

        'language' 的值对应 'zh-hans', 'user' 的值对应 'luobogan' 。

(三)后端视图的 get( )的参数

class SetLang(View): def get(self, request, *args, **kwargs):

1. 理解

        其中,第四个参数 **kwargs 的字典内容,是路由url中获取的(第二点中有提到)。

2. 比如

        kwargs 的值就是字典 {'language': 'zh-hans', 'user': 'luobogan'}

二、路由重定向 HttpResponseRedirect

(一)重定向到当前操作界面(刷新该界面)

from urllib.parse import unquotenexturl = request.META.get('HTTP_REFERER')
nexturl = nexturl and unquote(nexturl)
return HttpResponseRedirect(nexturl)

(二)重定向到指定界面

return HttpResponseRedirect('/url_set_lang/')

(三)重定向时,带参数

1. 指定跳转时

return HttpResponseRedirect('/url_set_lang/?user_id={}&book_id={}'.format('luobo', '数据结构'))

2. 获取时

request.GET.get('user_id')

三、重定向前,获取操作页面的路由

request.META.get('HTTP_REFERER')   # 针对Django

理解:

        当页面A跳转到页面B时,若 http 请求头包含 referer 字段,则该字段值就是页面A的 url 。

注意:

        由于不同浏览器的特点,HTTP_REFERER可能会不存在。即,若要使用HTTP_REFERER,需先检查是否存在。

四、URL编码与解码,即quote() & unquote() 

(一)quote( ) 对路由url编码

1. 写法

from urllib.parse import quote
quote('这是一个字符串')

2. 作用

        避免中文乱码。

(二)unquote( ) 对路由url解码

1. 写法

from urllib.parse import unquote
unquote(my_url)

2. 作用

        unquote( )方法能把 URL编码形式的字串,解码成原来的字串。

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

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

相关文章

pip清华源怎么换回来

怎么临时使用清华源 pip install scrapy -i https://pypi.Python.org/simple/怎么永久换源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple修改清华源后怎么换回来 删掉/home/XXX/.config/pip/pip.conf

openssl3.2/test/certs - 070 - Certs for CVE-2022-4203 testcase

文章目录 openssl3.2/test/certs - 070 - Certs for CVE-2022-4203 testcase概述笔记END openssl3.2/test/certs - 070 - Certs for CVE-2022-4203 testcase 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 /*! * \file D:\my_dev\my_local_git_prj\study\openSSL\te…

[蓝桥学习] 前缀和与差分

前缀和原理 特点 求区间和 如果要实现一边修改一边查询&#xff0c;需要使用树状树组和线段树。 例题 题目很简单&#xff0c;但是代码实现惊艳到我了&#xff0c;是L就加1&#xff0c;是Q就减1&#xff0c;如果区间 [i,j] 是平衡子串的话&#xff0c;那它会在前缀prefix i …

我用Java开发了一个五子棋小游戏

java开发一个五子棋小游戏代码 import java.util.Scanner;public class Gomoku {private static final int BOARD_SIZE 15;private static final char EMPTY .;private static final char PLAYER1 X;private static final char PLAYER2 O;public static void main(String[…

基于Kubernetes(K8s)构建企业容器云基础运行环境

cncfstack 新 文章上线&#xff1a; 书名&#xff1a;《云原生解决方案》 地址&#xff1a;https://zhaowenyu.com/cncf-solution 访问&#xff1a;文章底部“阅读原文”或访问域名 云原生计算是云计算发展新的里程碑阶段&#xff0c;是当今与未来很长一段时间中 IT 发展的技…

【学网攻】 第(10)节 -- 路由器单臂路由配置

系列文章目录 目录 系列文章目录 文章目录 前言 一、单臂路由是什么&#xff1f; 二、实验 1.引入 实验拓扑图 PC配置 Sw配置 Router配置 实验验证 总结 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交…

【医学图像隐私保护】PLAN方法:解决 GAN 生成医学图像 Latent 空间中的隐私保护

PLAN方法&#xff1a;解决 GAN 生成医学图像 Latent 空间中的隐私保护方法 PLAN 原理StyleGAN 生成视网膜图k-SALSA 生成视网膜图PLAN方法 生成视网膜图 总结 PLAN 原理 论文&#xff1a;https://arxiv.org/abs/2307.02984 代码&#xff1a;https://github.com/perceivelab/P…

Git 基本概念

Git是一种版本控制系统&#xff0c;用于跟踪文件的更改并协同开发代码。它具有以下基本概念和使用方式&#xff1a; 仓库&#xff08;Repository&#xff09;&#xff1a;Git将文件存储在仓库中&#xff0c;它是保存项目历史记录和更改的地方。一个项目通常有一个主要的仓库。 …

电商价格监测准确率如何保证

品牌做电商价格监测的前提是为了找出网络渠道中的破价链接&#xff0c;只有精准到筛选出破价链接&#xff0c;才能进行针对性的治理&#xff0c;比如经销渠道&#xff0c;只有当品牌拿出其破价的证据&#xff0c;才能对授权渠道进行规则管控&#xff0c;非授权渠道也是如此&…

HTML5与App封装技术将网站一键打包成App

HTML5&#xff1a;跨平台的利器HTML5作为一种先进的网页标记语言&#xff0c;其最大的优势在于跨平台性。开发者仅需编写一次代码&#xff0c;即可在各种操作系统和设备上运行&#xff0c;无需为每个平台单独开发App。这种“编写一次&#xff0c;运行处处”的模式&#xff0c;大…

java-集合-排序

集合的排序 java.util.Collections类 Collections是集合的工具类,里面定义了很多静态方法用于操作集合. java.util.Collections类是Java集合框架中的一个工具类&#xff0c;提供了一系列静态方法来操作集合对象。它包含了各种方法&#xff0c;如排序、查找、更改集合中的元素等…

系统架构15 - 软件工程(3)

软件过程模型 瀑布模型特点缺点 原型化模型特点两个阶段不同类型注意 螺旋模型V 模型特点 增量模型特点 喷泉模型基于构件的开发模型(CBSD)形式化方法模型敏捷模型特点“适应性” (adaptive) 而非“预设性” (predictive)“面向人的” (People-oriented) 而非“面向过程的” (P…

如何使用 WebRTC 与 Kurento 建立视频会议 App

本文作者 WebRTC Ventures 工程师。在 RTC 2018 实时互联网大会上&#xff0c;WebRTC Ventures 的资深软件工程师&#xff0c;将围绕 WebRTC 开发带来经验分享。欢迎访问RTC 开发者社区&#xff0c;与更多WebRTC开发者交流经验。 了解 WebRTC 如何工作的一种简单方式是通过学习…

golang入门

学习方法 1、在实践中学 2、适当的囫囵吞枣&#xff0c;有可能学到后面&#xff0c;对前面的疑问焕然大悟 3、注重整体&#xff0c;刚开始不要去扣细节 安装 需要配置3个环境变量&#xff0c;如果.msi文件安装时设置好了就不需要了&#xff0c;自己可以检查下 GOROOT&…

VUE--VUEX

一、什么是Vuex Vuex就是一个vue的状态&#xff08;数据&#xff09;管理工具&#xff0c;是vue项目实现大范围数据共享的技术方案。能够方便、高效的实现组件之间的数据共享。 Vuex的好处&#xff1a; &#xff08;1&#xff09;数据的存储一步到位&#xff0c;不需要层层传递…

权威媒体报道 | 百分点科技谈“数据要素×”

近日&#xff0c;国家数据局等17部门联合印发《“数据要素”三年行动计划&#xff08;2024—2026年&#xff09;》&#xff0c;引起广泛关注&#xff0c;作为数据要素技术厂商代表&#xff0c;百分点科技CTO刘译璟接受经济日报、中国高新技术产业导报采访&#xff0c;结合产业现…

<蓝桥杯软件赛>零基础备赛20周--第17周--并查集

报名明年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列&#xff1a;备赛20周合集 20周的完整安排请点击&#xff1a;20周计划 每周发1个博客&#xff0c;共20周。 在QQ群上交流答疑&am…

《微信小程序开发从入门到实战》学习九十三

7.1 视图容器组件 7.1.3 swiper与swiper-item组件 swiper组件的显示效果如下图所示&#xff1a; indicator-dots、indicator-color和indicator-active-color三个属性用于设置swiper组件下方的指示点。设置指示点的颜色时&#xff0c;可以使用HexColor&#xff0c;也可以使用r…

读懂比特币—bitcoin代码分析(五)

今天的代码分析主要是 bitcoin/src/init.cpp 文件中的三个函数&#xff1a;AppInitSanityChecks、AppInitLockDataDirectory、AppInitInterfaces&#xff0c;下面我们来说明这三个函数是用来干什么的&#xff0c;并逐行解读函数代码&#xff0c;先贴出源代码如下&#xff1a; …

API接口签名的生成方式Demo

签名计算方法&#xff1a; 请求端本地生成的签名&#xff0c;计算方式&#xff1a;md5(openid#secret#timestamp)&#xff0c;其中openid和secret为申请接口时分配的唯一ID和秘钥&#xff0c;“#”为字符串的连接符。 示例&#xff1a; 若请求参数为 keywordhello&offs…