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

转发和重定向:

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

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

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

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

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

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

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

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

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

这里我们在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文件

这里我们我多导入两个函数,分别是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,我们会用两个参数来接收

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

7. 然后会跳转到show页面

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

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

(0)

相关推荐

  • Django中多种重定向方法使用详解

    前言 本文使用了Django1.8.2 使用场景,例如在表单一中提交数据后,需要返回到另一个指定的页面即可使用重定向方法 一. 使用HttpResponseRedirect fuhao The first argument to the constructor is required – the path to redirect to. This can be a fully qualified URL or an absolute path with no domain."参数可以是绝对路径跟

  • Django中几种重定向方法

    这里使用的是django1.5 需求: 有一个界面A,其中有一个form B, 前台提交B之后,后台保存数据之后,返回界面A,如果保存失败需要在A界面提示错误. 这里就需要后台的重定向,而且需要可以带着参数,也就是error message 这里收集了几种方法,简答说下需要那些包,怎么简单使用. 一. 使用HttpResponseRedirect The first argument to the constructor is required – the path to redirect to

  • django如何实现视图重定向

    当请求访问到某个视图时,我们想让它重定向到其他页面,应该怎么做呢? 1.HttpResponseRedirect 需求:当我们访问127.0.0.1/my_redirect时跳到127.0.0.1/user/index 注意:要注册相应的url def my_redirect(request): return HttpResponseRedirect('/user/index') 2.redirect 需求:同上 def my_redirect(request): return redirect

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

    转发和重定向: 转发:一次请求和响应,请求的地址没有发生变化,如果此时刷新页面,就会出现重做现象. 重定向:一次以上的请求和响应,请求地址发生一次以上的变化,如果此时刷新页面,就不会发生重做现象. 我来举个简单的列子,比如我手机号上不了4G网,我打电话给10086,说了我这个情况后,她会把这个情况反映给技术人员,来帮我解决这个问题,如果说我又有这个问题的话直接点击重播就好了,但我重播的是10086这个号码,然后再有她转给技术人员,如果再有问题还得继续这样,那么就显得很麻烦了,那这时候10086的

  • django 使用全局搜索功能的实例详解

    安装需要的包 1 第一步: 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理. haystack:全文检索的框架,支持whoosh.solr.Xapian.Elasticsearc四种全文检索引擎 whoosh:纯Python编写的全文搜索引擎对于小型的站点,whoosh已经足够使用 jieba:一款免费的中文分词包 1)在虚拟环境中依次安装需要的包. pip install django-haystack pip install whoosh pip in

  • Django中的forms组件实例详解

    Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确.如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.. Django form组件就实现了上面所述的功能. 总结一下,其实form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上次输入内容 先在应用目录下my_for

  • 对django xadmin自定义菜单的实例详解

    1. 自定义菜单 adminx.py class GlobalSetting(object): site_title = u'xxx后台' def kuF_site_menu(self): return [{ 'title': u'用户&账户', 'perm': self.get_model_perm(User, 'view'), 'icon':'fa fa-users', 'menus':( {'title': u'用户', 'url': self.get_model_url(User, 'c

  • Django框架ORM数据库操作实例详解

    本文实例讲述了Django框架ORM数据库操作.分享给大家供大家参考,具体如下: 测试数据:BookInfo表 PeopleInfo表 一.增加 1.save: 对象 = 模型类( 字段名 = 值, 字段名 = 值, - ) 对象.save() 例: >>> book = BookInfo( ... name='python入门', ... pub_date='2010-1-1' ... ) >>> book.save() >>> book <B

  • django框架forms组件用法实例详解

    本文实例讲述了django框架forms组件用法.分享给大家供大家参考,具体如下: 在django中forms组件有其强大的功能,里面集合和众多的函数和方法:下面来看一下它的源码 """ Form classes """ from __future__ import unicode_literals import copy from collections import OrderedDict from django.core.exception

  • django框架auth模块用法实例详解

    本文实例讲述了django框架auth模块用法.分享给大家供大家参考,具体如下: auth模块的导入 from django.contrib import auth django中的auth模块有其自己完整的一套方法: 登录验证.注销.用户的创建.比较用户输入的密码是否和数据库的一致.用户信息的修改 1 我们来生成db.sqlite3 (migrations,migrate),打开,从中我们可以找到表 auth_user ,整篇都是围绕这个表进行的 2  这个表里面暂时是空的,我们可以创建 ,例

  • Django 导出 Excel 代码的实例详解

    这篇技术贴讲怎样在Django的框架下导出Excel, 最开始打算用ajax post data 过去,但是发现不行,所以改用了get的方式.如果只有一个id(pk)那用get的方式很简单就可以访问对应的view section,但是如果是多个ids,我用的是session,大家还有其他好的例子吗?希望一起讨论. Python3.5 Django 1.10, sqlite3, windows 10 1. virtualenv export_excel  <--- create a virtual

  • Django调用支付宝接口代码实例详解

    支付宝支付 正式环境:用营业执照,申请商户号,appid 测试环境:沙箱环境:https://openhome.alipay.com/platform/appDaily.htm?tab=info 支付宝提供接口:给商户使用,收钱 -Java,php,C#的demo,没有python的demo -git有人封装了 -需要安装模块:pip3 install -应用私钥---自己保存,一定不能丢 -应用公钥---给别人用 -支付宝公钥---支付宝用的 -生成公钥私钥:https://docs.open

随机推荐