对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 相关文章推荐
Python中的lstrip()方法使用简介
May 19 Python
使用Python的Tornado框架实现一个Web端图书展示页面
Jul 11 Python
对pandas中to_dict的用法详解
Jun 05 Python
详解js文件通过python访问数据库方法
Mar 03 Python
python实现nao机器人手臂动作控制
Apr 29 Python
python async with和async for的使用
Jun 20 Python
Python 字符串类型列表转换成真正列表类型过程解析
Aug 26 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
Anaconda 查看、创建、管理和使用python环境的方法
Dec 03 Python
在Python 的线程中运行协程的方法
Feb 24 Python
python 实现表情识别
Nov 21 Python
Python使用openpyxl模块处理Excel文件
Jun 05 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
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
php防止网站被刷新的方法汇总
2014/12/01 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2009/06/22 Javascript
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
2011/06/20 Javascript
固定网页背景图同时保持图片比例的思路代码
2013/08/15 Javascript
5种处理js跨域问题方法汇总
2014/12/04 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
jquery dialog获取焦点的方法
2017/02/09 Javascript
让div运动起来 js实现缓动效果
2017/07/06 Javascript
捕获未处理的Promise错误方法
2017/10/13 Javascript
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
vue微信分享的实现(在当前页面分享其他页面)
2019/04/16 Javascript
Node.js API详解之 dgram模块用法实例分析
2020/06/05 Javascript
[03:03]DOTA2 2017国际邀请赛开幕战队入场仪式
2017/08/09 DOTA
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
Python XlsxWriter模块Chart类用法实例分析
2019/03/11 Python
django中瀑布流写法实例代码
2019/10/14 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
Python Flask框架实现简单加法工具过程解析
2020/06/03 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
Django Form常用功能及代码示例
2020/10/13 Python
十一个高级MySql面试题
2014/10/06 面试题
汉语专业应届生求职信
2013/10/01 职场文书
十佳教师事迹材料
2014/01/11 职场文书
公司总经理任命书
2014/06/05 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
安全生产学习心得体会
2016/01/18 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
Pandas数据结构之Series的使用
2022/03/31 Python
vue实现登陆页面开发实践
2022/05/30 Vue.js