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使用lxml模块和Requests模块抓取HTML页面的教程
May 16 Python
浅谈Python基础之I/O模型
May 11 Python
python3使用requests模块爬取页面内容的实战演练
Sep 25 Python
Python中生成器和迭代器的区别详解
Feb 10 Python
python中字符串内置函数的用法总结
Sep 13 Python
Python实现打砖块小游戏代码实例
May 18 Python
Python使用scrapy爬取阳光热线问政平台过程解析
Aug 14 Python
使用Python调取任意数字资产钱包余额功能
Aug 15 Python
Python Socket TCP双端聊天功能实现过程详解
Jun 15 Python
Python Request类源码实现方法及原理解析
Aug 17 Python
Python面向对象特殊属性及方法解析
Sep 16 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
Jan 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上的memcache和memcached两个pecl库
2010/03/29 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
基于jquery的一行代码轻松实现拖动效果
2010/12/28 Javascript
基于jQuery的获取标签名的代码
2012/07/16 Javascript
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
用JS做的简单的可折叠的两级树形菜单
2013/09/21 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
JavaScript获取页面上被选中文字的方法技巧
2015/03/13 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
详解JavaScript树结构
2017/01/09 Javascript
Node.js的特点详解
2017/02/03 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
Python实现各种排序算法的代码示例总结
2015/12/11 Python
python遍历文件夹下所有excel文件
2018/01/03 Python
PyCharm代码整体缩进,反向缩进的方法
2018/06/25 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
纽约海:Sea New York
2018/11/04 全球购物
.NET remoting的两种通道是什么
2016/05/31 面试题
社团成立邀请函
2014/01/08 职场文书
国税会议欢迎词
2014/01/16 职场文书
服务标语口号
2014/07/01 职场文书
图书馆义工感想
2015/08/07 职场文书
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python
Python一行代码实现自动发邮件功能
2021/05/30 Python
Linux安装apache服务器的配置过程
2021/11/27 Servers
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers