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 相关文章推荐
qpython3 读取安卓lastpass Cookies
Jun 19 Python
Python实现带百分比的进度条
Jun 28 Python
浅谈scrapy 的基本命令介绍
Jun 13 Python
在IPython中执行Python程序文件的示例
Nov 01 Python
使用PM2+nginx部署python项目的方法示例
Nov 07 Python
Django实现学员管理系统
Feb 26 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
python numpy--数组的组合和分割实例
Feb 24 Python
python关于变量名的基础知识点
Mar 03 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
Apr 21 Python
python 实现百度网盘非会员上传超过500个文件的方法
Jan 07 Python
Python序列化模块JSON与Pickle
Jun 05 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封装的连接Mysql类及用法分析
2015/12/10 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
javascript 写类方式之四
2009/07/05 Javascript
学习ExtJS border布局
2009/10/08 Javascript
javascript Demo模态窗口
2009/12/06 Javascript
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
js限制文本框只能输入整数或者带小数点的数字
2015/04/27 Javascript
深入理解JQuery中的事件与动画
2016/05/18 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
vue 组件 全局注册和局部注册的实现
2018/02/28 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
Vue根据条件添加click事件的方式
2019/11/09 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
python删除服务器文件代码示例
2018/02/09 Python
python logging日志模块以及多进程日志详解
2018/04/18 Python
在Python中给Nan值更改为0的方法
2018/10/30 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
学校节能宣传周活动总结
2014/07/09 职场文书
竞选班干部演讲稿100字
2014/08/20 职场文书
初三学生语文考试作弊检讨书
2014/12/14 职场文书
处级干部考察材料
2014/12/24 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书
导游词之张家口
2019/12/13 职场文书