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创建只读属性对象的方法(ReadOnlyObject)
Feb 10 Python
用Python制作检测Linux运行信息的工具的教程
Apr 01 Python
python发送邮件实例分享
Jul 28 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
Feb 21 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
python打开windows应用程序的实例
Jun 28 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
Aug 09 Python
django 多对多表的创建和插入代码实现
Sep 09 Python
python3爬虫中多线程的优势总结
Nov 24 Python
python 如何做一个识别率百分百的OCR
May 29 Python
分享提高 Python 代码的可读性的技巧
Mar 03 Python
Python批量解压&压缩文件夹的示例代码
Apr 04 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基础学习之流程控制的实现分析
2013/04/28 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
2014/03/13 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
vue通过过滤器实现数据格式化
2020/07/20 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
Python 学习笔记
2008/12/27 Python
Python对列表中的各项进行关联详解
2017/08/15 Python
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
解决Pycharm后台indexing导致不能run的问题
2019/06/27 Python
python实现机器人卡牌
2019/10/06 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
python 伯努利分布详解
2020/02/25 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
硕士研究生自我鉴定范文
2013/12/27 职场文书
医药销售求职信范文
2014/02/01 职场文书
商超业务员岗位职责
2014/03/12 职场文书
委托公证书范本
2014/04/03 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
安全责任书范本
2014/04/15 职场文书
纠纷协议书
2014/04/16 职场文书
办理信用卡工作证明
2014/09/30 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
员工旷工检讨书
2015/08/15 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书
小学生节约用水倡议书
2019/08/12 职场文书
Python编程源码报错解决方法总结经验分享
2021/10/05 Python