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开发WebService系列教程之REST,web.py,eurasia,Django
Jun 30 Python
python利用beautifulSoup实现爬虫
Sep 29 Python
python判断字符串编码的简单实现方法(使用chardet)
Jul 01 Python
python 性能提升的几种方法
Jul 15 Python
Django中的ajax请求
Oct 19 Python
解决Pandas的DataFrame输出截断和省略的问题
Feb 08 Python
Python3模拟登录操作实例分析
Mar 12 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
May 04 Python
Python进程Multiprocessing模块原理解析
Feb 28 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
python 常见的反爬虫策略
Sep 27 Python
Python何绘制带有背景色块的折线图
Apr 23 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
BBS(php &amp; mysql)完整版(二)
2006/10/09 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
PHP反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
为你总结一些php信息函数
2015/10/21 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
基于jquery的回到页面顶部按钮
2011/06/27 Javascript
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
JS匿名函数实例分析
2016/11/26 Javascript
js实现tab切换效果
2017/02/16 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
python提取内容关键词的方法
2015/03/16 Python
详解详解Python中writelines()方法的使用
2015/05/25 Python
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
Python人脸识别初探
2017/12/21 Python
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
python kafka 多线程消费者&amp;手动提交实例
2019/12/21 Python
Python读取YAML文件过程详解
2019/12/30 Python
python使用pandas抽样训练数据中某个类别实例
2020/02/28 Python
Spartoo葡萄牙鞋类网站:线上销售鞋履与时尚配饰
2017/01/11 全球购物
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
年度考核自我鉴定
2014/02/02 职场文书
MySQL之select、distinct、limit的使用
2021/11/11 MySQL
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技