django跳转页面传参的实现


Posted in Python onSeptember 17, 2020

一、情景

    eg:查看一条数据的详情,需要跳转页面,并进行传值

二、思路

方式1:触发详情按钮时,Js获取到该条数据的id值,并传递给url,后台接受到该请求,通过id查询到这条数据。并返回一个json串给前端。前端拿到数据进行处理,映射给页面。

方式2:触发详情按钮时,同时前端进行本地保存当前数据(sessionstorage\localstorage),跳转页面后,前端直接从storage当前取值并回显。

           ①关于数据存储:

            sessionstorage:数据存储,关闭窗口的同时,清除数据

            localstorage:数据存储,未定义过期时间,一直存在本地

需要注意的是:当前端页面发生跳转时,资源都会被重载,当未进行传值的情况下,无法跨页面加载数据。

三 实现:

方式1:URL传值

①获取id后直接传递给URL

window.location.href=`index.html?nid=${id}`;

②再跳转到index.html的js中获取到该并id解析

(function() {
 window.onload = function() {
    var url=window.location.href;
    var url_param = url.split("?")[1];
    var url_param_arr = url_param.split("=");
    var nid ={nid:url_param_arr[1]};
    preview_index(nid);//处理函数,发送请求
 }
})();

方式2:本地存储

①存

//本地存储
        var storage = window.sessionStorage;
        storage['index_name'] = $('#index_name').val();
        storage['index_title'] = $('#index_title').val();
        storage['index_content'] = $('#index_content').val();

②读取

var storage=window.sessionStorage;
title=storage.index_title

四、其他方法

1、如果在反转url的时候,需要添加参数,那么可以通过传递'kwargs'参数到'reverse'函数中。实例代码:

urls.py

from django.urls import path, re_path
from app01 import views

urlpatterns = [
  path('article/<year>/<month>/',views.article,name='article'),
  path('', views.Login.as_view(), name="login"),
  ]

views.py

from django.shortcuts import HttpResponse, redirect, reverse
from django.contrib.auth.models import User, 
from django.views.generic import View
from django.contrib.auth import authenticate, login,

class Login(View):
  def get(self, request):
    return render(request, 'login.html')

  def post(self, request):
    username = request.POST.get('username')
    passwd = request.POST.get('passwd')
    user = authenticate(request, username=username, password=passwd)
    if user is not None:
      if user.is_active:
        login(request, user)
        # 登录成功跳转页面
        return redirect(reverse('article', kwargs={'year': 2019, 'month': 12}))
      else:
        err_msg = '用户未激活,请联系管理员进行激活'
    else:
      err_msg = '用户名或密码有误'
    return render(request, 'login.html', {"err_msg": err_msg, "username": username})


def article(request, year, month):
  return HttpResponse('您查询的文章日期是:%s年%s月' %(year, month))

2、如果想要添加查询字符串的参数,则必须手动的进行拼接。实例代码如下:

login_url = reverse('login')+"?next=/"

到此这篇关于django跳转页面传参的实现的文章就介绍到这了,更多相关django跳转页面传参内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
用python删除java文件头上版权信息的方法
Jul 31 Python
python 采集中文乱码问题的完美解决方法
Sep 27 Python
python实现rsa加密实例详解
Jul 19 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
Jul 28 Python
python3使用smtplib实现发送邮件功能
May 22 Python
pygame游戏之旅 python和pygame安装教程
Nov 20 Python
对python修改xml文件的节点值方法详解
Dec 24 Python
Python字典的核心底层原理讲解
Jan 24 Python
python thrift 实现 单端口多服务的过程
Jun 08 Python
音频处理 windows10下python三方库librosa安装教程
Jun 20 Python
通过实例了解Python异常处理机制底层实现
Jul 23 Python
django注册用邮箱发送验证码的实现
Apr 18 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
Sep 17 #Python
Django mysqlclient安装和使用详解
Sep 17 #Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
Sep 29 #Python
Django返回HTML文件的实现方法
Sep 17 #Python
Pycharm新手使用教程(图文详解)
Sep 17 #Python
Django修改app名称和数据表迁移方案实现
Sep 17 #Python
Python request中文乱码问题解决方案
Sep 17 #Python
You might like
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
Laravel多域名下字段验证的方法
2019/04/04 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
JavaScript内核之基本概念
2011/10/21 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
2016/01/29 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
2016/02/18 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
2017/06/12 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:28]一分钟告诉你DOTA2 TI9不朽宝藏Ⅱ中有什么!
2019/07/09 DOTA
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
Python如何基于selenium实现自动登录博客园
2019/12/16 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
windeln官方海外旗舰店:德淘超人气母婴超市
2017/12/15 全球购物
行政文员实习自我鉴定范文
2014/09/14 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
安装工程师岗位职责
2015/02/13 职场文书
实验心得体会范文
2016/01/25 职场文书