django跳转页面传参的实现
作者:xsan 发布时间:2022-01-23 00:56:55
标签:django,跳转,页面传参
一、情景
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=/"
来源:https://www.cnblogs.com/xshan/p/12080703.html
0
投稿
猜你喜欢
- 内容摘要:您是否想让您的网站有多种显示风格呢,本文介绍了如何使用CSS结合js实现动态更换页面皮肤风格。看了下面的介绍您就明白了如何实现了这
- 本文实例讲述了php从文件夹随机读取文件的方法。分享给大家供大家参考。具体实现方法如下:function RandomFile($folde
- SQL Server 2008已经发布,我们可以看到它在各方面都有了显著的进步,这些让人侧目之处和失望之处都有可能极大地影响大型企业的采购意
- Expression定义 IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javascript表达式关联起来,这
- 一.基本的查询语句,特殊符号||。制定列的别名AS,唯一标示distinct1.字符连接符“||”与“+”符oracle:select &n
- 本文实例讲述了关于php中SimpleXML 函数的用法,此函数是允许您把 XML 转换为对象,分享给大家供大家参考。具体分析如下:Simp
- l当今世界,技术发展迅猛,不论是什么行业,大多数关键数据都是放置于数据库中进行管理的,一来目前数据库技术已经相当成熟,二来其管理功能非常强大
- 这是早上找了点时间写了一个利用404错误达到静态态效果的类,准备在HTTP://PJSKIN.MYSUC.COM中使用的。不过现在没时间去弄
- 1. RequestDispatcher.forward()在服务器端起作用,当使用forward()时,Servlet engine传递H
- 经常用FLASH嵌入到网页里面,那咋能躲过W3C那个家伙呢?看下面!<object type="applicati
- aspx: <div id="selDiv" style=" z-index:100; visibili
- 网上有这样一道题目:一个字符串String=“adadfdfseffserfefsefseetsdg”,找出里面出现次数最多的字母和出现的次
- PHP7.0正式版也出来了,今天编译安装了一下,写下安装步骤,我是在centos6.6 环境中编译的,下面是详细的安装步骤环境依赖yum i
- 最近遇到SQL Server 2005 输入框不能输入中文,在网上查了N久,试验了十几次奏这个法子有用:“把你表中的自动编号列放到最后面”。
- 内容摘要: 模拟网页下拉菜单中有几个比较关键的CSS属性:position、left、top、
- Phar是什么在百度中得到介绍是这样的:在软件中,PHAR(PHP归档)文件是一种打包格式,通过将许多PHP代码文件和其他资源(例如图像,样
- IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javascript表达式关联起来,这里的CSS属性可以是元素固
- 正如你现在所看到的一样,网页的布局设计变得越来越重要。访问者不愿意再看到只注重内容的站点。虽然内容很重要,但只有当网页布局和网页内容成功接合
- 本文实例讲述了PHP操作MySQL中BLOB字段的方法。分享给大家供大家参考,具体如下:1、MySQL中BLOB字段类型BLOB类型的字段用
- 一.权限表mysql数据库中的3个权限表:user 、db、 host权限表的存取过程是:1)先从user表中的host、 user、 pa