django跳转页面传参的实现
作者:xsan 时间:2022-01-23 00:56:55
一、情景
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
标签:django,跳转,页面传参
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Javascript简单实现可拖动的div
2013-08-20 11:46:37
从事设计行业的十年
2008-04-01 09:44:00
PHP文件操作详解
2023-11-20 07:44:25
脚本安全的本质_PHP+MYSQL第1/3页
2023-11-23 23:54:45
SQL Server数据库于应用程序的关系
2010-07-26 14:21:00
详解PHP结构型设计模式之桥接模式Bridge Pattern
2023-05-25 06:58:55
Python3爬虫中关于中文分词的详解
2023-08-12 23:10:28
javascript的正则表达式
2010-07-27 12:29:00
Oracle数据库系统紧急故障处理方法
2010-07-26 12:57:00
php遍历CSV类实例
2023-11-01 23:46:26
pytorch dataloader 取batch_size时候出现bug的解决方式
2023-08-12 01:27:45
PHP中的traits实现代码复用使用实例
2023-11-22 04:27:55
php牛逼的面试题分享
2023-11-20 19:31:35
解决Dreamweaver不支持中文文件名方法
2008-01-09 12:52:00
再谈 Web 字体的现状与未来[译]
2009-11-24 13:55:00
![](https://img.aspxhome.com/file/UploadPic/200911/24/webfonts_example-thumb-640xauto-7429-10s.png)
如何利用SysOjects来获知数据库的信息?
2010-01-01 15:43:00
Django项目如何给数据库添加约束
2023-08-10 14:49:39
![](https://img.aspxhome.com/file/2023/4/62014_0s.jpg)
浅谈PHP错误类型及屏蔽方法
2023-11-23 10:26:46
PHP设计模式之装饰器模式定义与用法详解
2023-09-11 18:41:48
Python cv.Canny()方法参数与使用方法
2023-10-06 07:24:37
![](https://img.aspxhome.com/file/2023/8/62888_0s.png)