django 上传路径至vue处理组件加载
1,在主目录(项目目录)下新建中间件middleware.py文件
写入
from django.utils.deprecation import MiddlewareMixin
from django.http import HttpResponseRedirect
import json '''请求数据的页面'''
request_data_page = [
'/QQ/index/',
'/QQ/verifyLogin/',
'/QQ/login/',
'/QQ/register/',
]
class match_unnecessary_path(MiddlewareMixin):
'''路径信息'''
path_params = ''
json_params = '' def process_request(self,request):
'''
匹配多余路径,发送至vue进行处理
当存在session时,访问vue内部组件时通过django无法访问
截取访问的路径,储存之request中,通过响应发送给vue
'''
path = request.path
Session = request.session.get('username')
isRequestData = path not in request_data_page
Redirect = Session and isRequestData
'''
非请求数据的页面就重定向至主页,vue页面会向请求verifyLogin请求数据,所以重定向之主页,在vue中跳转至对应的组件页面
请求数据被重定向,会返回一个HTML二进制页面数据,所以要排除在外
'''
if Redirect :
self.path_params = request.path
# print(self.path_params, 'request-23') '''重定向至主页'''
return HttpResponseRedirect('/QQ/index') def process_response(self,request,response):
'''当有session值,请求数据时将请求的路径返回vue'''
path = request.path
print(self.path_params,'response-29')
'''当包含session时,请求的页面是其他页面,将路径上传至vue进行处理'''
if path == '/QQ/verifyLogin/' and self.path_params:
'''获取上传的数据'''
self.json_params = response.content.decode()
'''修改数据,将路径添加到数据中一起上传'''
dict_content = json.loads(self.json_params)
dict_content['request_path'] = self.path_params
json_content =(json.dumps(dict_content)).encode()
response.content = json_content return response class change_request_middle(MiddlewareMixin):
def process_request(self,request):
# pass
#陷入死循环
# if not request.session.get('username'):
'''不包含session时,访问内部组件,重定向之登录界面'''
path = request.path
noSession = not request.session.get('username')
isRequestData = path not in request_data_page
Redirect = noSession and isRequestData
'''
非请求数据的页面就重定向至主页,vue页面会向请求verifyLogin请求数据,所以重定向之主页,在vue中跳转至对应的组件页面
请求数据被重定向,会返回一个HTML二进制页面数据,所以要排除在外
'''
if Redirect:
#重定向路径,修改路径
return HttpResponseRedirect('/QQ/index')
中间件1
2,在settings.py中注册
'middleware.类名'
3,在vue中接收发送过来的数据
django 上传路径至vue处理组件加载的更多相关文章
- Ajax的原理及Django上传组件
title: Ajax的原理及Django上传组件 tags: Django --- Ajax的原理及Django上传组件 Ajax的原理 ajax 是异步JavaScript和xml ajax就是向 ...
- 实现简单的django上传文件
本文用django实现上传文件并保存到指定路径下,没有使用forms和models,步骤如下: 1.在模板中使用form表单,因为这个表单使用于上传文件的,所以method属性必须设置为post,而且 ...
- kindeditor修改图片上传路径-使用webapi上传图片到图片服务器
kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 在这里我着重介绍一些使用kindeditor修改图片上传路径并通过webapi上传图片到图片服务器的方案. 因为我使用的 ...
- kindeditor扩展粘贴图片功能&修改图片上传路径并通过webapi上传图片到图片服务器
前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...
- kindeditor扩展粘贴截图功能&修改图片上传路径并通过webapi上传图片到图片服务器
前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...
- Django上传excel表格并将数据写入数据库
前言: 最近公司领导要统计技术部门在各个业务条线花费的工时百分比,而 jira 当前的 Tempo 插件只能统计个人工时.于是就写了个报表工具,将 jira 中导出的个人工时excel表格 导入数据库 ...
- 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程之更改图片和附件上传路径
本文是接上一篇博客,如果有疑问请先阅读上一篇:百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程 默认UEditor上传图片的路径是,编辑器包目录里面的net目录下 下面就演示如 ...
- (转)django上传文件
本文转自:http://www.cnblogs.com/linjiqin/p/3731751.html 另: 本文对原文做了适当修改 更为详细的介绍可以参考官方文档. emplate html(模板 ...
- django上传文件
template html(模板文件): <form enctype="multipart/form-data" method="POST" action ...
随机推荐
- 性能测试 | 记一次生产数据库sql由451s优化为0.4s的过程
概述 最近开发说某个接口跑的很慢,排查了下发现其中一条sql,数据量不大,但居然要跑451s,下面简单记录一下优化的过程. 问题sql SELECT l.location_gid ENUMVALUE, ...
- 前端知识点回顾之重点篇——CSS中的BFC
BFC布局(Block Formatting Contexts) 来源:https://www.cnblogs.com/lzbk/p/6057097.html 块级格式化上下文是页面中的一块渲染区域, ...
- Redis调试 Centos
https://zhuanlan.zhihu.com/p/67205845 https://www.cxc233.com/blog/e1d54234.html
- CentOS linux7 磁盘分区
常用命令 df [选项] [文件] -a 显示全部文件系统 -h 方便阅读方式显示 -l 只显示本地文件系统 -T 显示文件系统类型 fdisk /dev/sda1
- Java特殊数据结构-TreeSet
资料来源 TreeSet初步入门总结 https://www.cnblogs.com/yzssoft/p/7127894.html TreeSet自然排序与比较器排序精讲 https://blog.c ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_4-1.单机和分布式应用的登录检验讲解
笔记 第四章 开发在线教育视频站点核心业务之JWT微服务下的用户登录权限校验 1.单机和分布式应用的登录检验讲解 简介:讲解单机和分布式应用下登录校验,session共享,分布式缓存使用 1. ...
- mysql 如何给大表添加字段
1. 能不加字段就不要加, 能不修改字段就不要修改, 能不删除字段就不要删除, 等等为什么要删除字段呢? 如果没事,不要蛋疼的找事. 实际上,我们那次更新失败后, 我们并没有增加那个字段, 然后我们一 ...
- Linux命令集锦:crontab命令
Linux crontab是用来定期执行程序的命令.当安装完成操作系统之后,默认便会启动此任务调度命令.crontab命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作. 而 ...
- php代码判断用户访问的当前协议是否为https
public function isHttps() { if ( ! empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) ...
- 开发 --- IDE及小工具
django-debug-toolbar 介绍: django-debug-toolbar 是Django调试工具条,提供了各种信息的获取,拥有极强的调试功能. 官网: https://django- ...