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实现在pickling的时候压缩的方法
Sep 25 Python
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
Nov 02 Python
python安装教程 Pycharm安装详细教程
May 02 Python
pycharm安装图文教程
May 02 Python
python统计多维数组的行数和列数实例
Jun 23 Python
解决Python3 被PHP程序调用执行返回乱码的问题
Feb 16 Python
记录Python脚本的运行日志的方法
Jun 05 Python
python3模拟实现xshell远程执行liunx命令的方法
Jul 12 Python
python中如何实现将数据分成训练集与测试集的方法
Sep 13 Python
Python基于内置库pytesseract实现图片验证码识别功能
Feb 24 Python
Python 整行读取文本方法并去掉readlines换行\n操作
Sep 03 Python
Python Pandas模块实现数据的统计分析的方法
Jun 24 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
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
零基础php编程好学吗
2019/10/11 PHP
PHP7新增函数
2021/03/09 PHP
大家未必知道的Js技巧收藏
2008/04/07 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
PHP PDO操作总结
2014/11/17 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
2016/11/10 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
2016/12/27 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
2017/12/19 jQuery
Vue组件通信的四种方式汇总
2018/02/08 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
小程序实现长按保存图片的方法
2019/12/31 Javascript
JS实现按比例缩小图片宽高
2020/08/24 Javascript
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
以windows service方式运行Python程序的方法
2015/06/03 Python
python中for用来遍历range函数的方法
2018/06/08 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
美国网上书店:Barnes & Noble
2018/08/15 全球购物
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
一些关于MySql加速和优化的面试题
2014/01/30 面试题
大学校园活动策划书
2014/02/04 职场文书
初三学习决心书
2014/03/11 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
运动会入场词
2015/07/18 职场文书
导游词之安徽巢湖
2019/12/26 职场文书
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫
MySQL 原理与优化之原数据锁的应用
2022/08/14 MySQL