对Django 转发和重定向的实例详解


Posted in Python onAugust 06, 2019

转发和重定向:

转发:一次请求和响应,请求的地址没有发生变化,如果此时刷新页面,就会出现重做现象。

重定向:一次以上的请求和响应,请求地址发生一次以上的变化,如果此时刷新页面,就不会发生重做现象。

我来举个简单的列子,比如我手机号上不了4G网,我打电话给10086,说了我这个情况后,她会把这个情况反映给技术人员,来帮我解决这个问题,如果说我又有这个问题的话直接点击重播就好了,但我重播的是10086这个号码,然后再有她转给技术人员,如果再有问题还得继续这样,那么就显得很麻烦了,那这时候10086的工作人员可以在我拨打10086的时候直接转到技术人员哪里,虽然外面的拨的电话是10086,但接的却是技术人员的号码。虽然这个例子很垃圾,但差不多就是这个意思。

这个问题可以在原来的项目上改一下就可以了,因为我前面的项目早已经介绍过了,所以就不说了,就在原来的文件上进行更改

如果不做重定向的话,我们在提交用户名和密码的时候,这时候点刷新时,用户名和密码会一直提交,如果数据库没有做限制的话,那么就会出现多个相同的用户名和密码。

要解决这个问题,首先我们要做一个命名空间,将我们注册的每个用户名用id来进行绑定,确保唯一性,而且注册成功后直接跳转到show.html那里去,而且还可以把用户名和密码显示出来

1. 首先我们要在Djangoproject这个容器的url.s.py文件里面加入命名空间

对Django 转发和重定向的实例详解

我这里写入命名空间,自定义命名空间名为zc,这个在view.py里面会写到

2. 根据我之前写的博客,容器的urls.py会查找项目的urls.py,这里也要做一些修改

对Django 转发和重定向的实例详解

这里我们在3行中写app_name='zc',这句也是命名空间,这是为了对应view.py中redirect函数里面reverse的zc:show,第6行中加了<int:id>,这个的意思是将数据库的id使用进来了,这样我们就可以用show/id,可以显示数据的id,也可更改id来查找数据,这个和view.py里面的args=[zc.id]有关,后面那个name='show' 的意思是取个别名,对应的也是view.py里面的zc:show,表名这个命名空间里面放的是show函数。

3.下面来看view.py文件

对Django 转发和重定向的实例详解

这里我们我多导入两个函数,分别是redirect(重定向问题)、reverse(解决跳转路径)。

4. views.py这里我们多定义了一个show函数,这里加了函数要在temp1项目下的urls.py下也要加,告诉urls.py有这个函数

里面的参数是id,这个参数要从外界获取,这个参数就是<int:id>,是在urls.py那里获取到的,在return中我们把我们在15行中得到的用户名和密码返回出去,15行get(pk=id)的意思是获取到主键的id,这个id里面有用户名和密码,这个id号是数据库表在创建前自动创建的,之前的文章我提到过,这里就不多说。

5. 返回的内容会赋值给show.html,我们会用两个参数来接收

对Django 转发和重定向的实例详解

6. 我们来运行项目并注册

对Django 转发和重定向的实例详解

7. 然后会跳转到show页面

对Django 转发和重定向的实例详解

这里会把用户名和密码显示出来,而链接里面的18则是id,这里表名我们注册的用户名在数据库里面的id号是18,我们也可以更改这个id号,改为17的话则会显示出id号为17的用户名和密码。

以上这篇对Django 转发和重定向的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Django Form解决表单数据无法动态刷新的两种方法
Jul 14 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
Sep 06 Python
Python实现购物系统(示例讲解)
Sep 13 Python
TensorFlow神经网络优化策略学习
Mar 09 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
Python退火算法在高次方程的应用
Jul 26 Python
Python语言快速上手学习方法
Dec 14 Python
使用PyCharm进行远程开发和调试的实现
Nov 04 Python
python实现上传文件到linux指定目录的方法
Jan 03 Python
如何在sublime编辑器中安装python
May 20 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
Jul 20 Python
python 星号(*)的多种用途
Sep 21 Python
django 环境变量配置过程详解
Aug 06 #Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 #Python
如何在Django配置文件里配置session链接
Aug 06 #Python
在django中,关于session的通用设置方法
Aug 06 #Python
Django 对象关系映射(ORM)源码详解
Aug 06 #Python
Django中使用session保持用户登陆连接的例子
Aug 06 #Python
Python中的self用法详解
Aug 06 #Python
You might like
当海贼王变成JOJO风
2020/03/02 日漫
php函数之子字符串替换&amp;#65279; str_replace
2011/03/23 PHP
ThinkPHP惯例配置文件详解
2014/07/14 PHP
php实现中文字符截取防乱码方法汇总
2015/04/29 PHP
php常用图片处理类
2016/03/16 PHP
js读取配置文件自写
2014/02/11 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
2015/11/04 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
AngularJS基础 ng-readonly 指令简单示例
2016/08/02 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
2016/11/09 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
2016/11/29 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
[02:16]卖萌的僵尸 DOTA2神话信使飞僵小宝来袭
2014/03/24 DOTA
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
在ubuntu16.04中将python3设置为默认的命令写法
2018/10/31 Python
详解Django模版中加载静态文件配置方法
2019/07/21 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
CSS3制作圆角图片和椭圆形图片
2016/07/08 HTML / CSS
英国探险旅游专家:Explore
2018/12/20 全球购物
查摆问题自查报告范文
2014/10/13 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
OpenCV中resize函数插值算法的实现过程(五种)
2021/06/05 Python
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python
Python帮你解决手机qq微信内存占用太多问题
2022/02/15 Python