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处理组件加载的更多相关文章

  1. Ajax的原理及Django上传组件

    title: Ajax的原理及Django上传组件 tags: Django --- Ajax的原理及Django上传组件 Ajax的原理 ajax 是异步JavaScript和xml ajax就是向 ...

  2. 实现简单的django上传文件

    本文用django实现上传文件并保存到指定路径下,没有使用forms和models,步骤如下: 1.在模板中使用form表单,因为这个表单使用于上传文件的,所以method属性必须设置为post,而且 ...

  3. kindeditor修改图片上传路径-使用webapi上传图片到图片服务器

    kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 在这里我着重介绍一些使用kindeditor修改图片上传路径并通过webapi上传图片到图片服务器的方案. 因为我使用的 ...

  4. kindeditor扩展粘贴图片功能&修改图片上传路径并通过webapi上传图片到图片服务器

    前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...

  5. kindeditor扩展粘贴截图功能&修改图片上传路径并通过webapi上传图片到图片服务器

    前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...

  6. Django上传excel表格并将数据写入数据库

    前言: 最近公司领导要统计技术部门在各个业务条线花费的工时百分比,而 jira 当前的 Tempo 插件只能统计个人工时.于是就写了个报表工具,将 jira 中导出的个人工时excel表格 导入数据库 ...

  7. 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程之更改图片和附件上传路径

    本文是接上一篇博客,如果有疑问请先阅读上一篇:百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程 默认UEditor上传图片的路径是,编辑器包目录里面的net目录下 下面就演示如 ...

  8. (转)django上传文件

    本文转自:http://www.cnblogs.com/linjiqin/p/3731751.html 另:  本文对原文做了适当修改 更为详细的介绍可以参考官方文档. emplate html(模板 ...

  9. django上传文件

    template html(模板文件): <form enctype="multipart/form-data" method="POST" action ...

随机推荐

  1. 【JDBC】使用Spring提供的JDBCTemplate通过Statement向MySql数据库插入千万条数据,耗时4m55s,使用insert语句批量插入方式二

    这回依然是使用 insert批量插入这种方式 insert into emp(name,age,cdate) values ('A' , 20, '2019-10-13 00:00:00'), ('B ...

  2. tkinter入门-布局方式pack(), grid(), place()

    pack 转载于https://www.cnblogs.com/kongzhagen/p/6144588.html\ 1. 使用pack函数的时候,默认先使用放到上面的,然后依次从上向下排 2. 可接 ...

  3. zabbix server端与agent端源码安装 自定义监控项

    ZabbixServer的安装(只有源码装zabbix才能装支持java) 搭建自定义yum仓库并安装支持包 yum -y install createrepo #下载依赖关系命令 createrep ...

  4. eclipse下生成Java类图和时序图,生成UML图

    1.安装和使用AmaterasUML 安装AmaterasUML前,需要先安装GEF采用eclipse在线安装方式安装就好.eclipse在线安装GEF的地址:http://download.ecli ...

  5. 执行scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldb命令时一直报错:

    Can't locate Data/Dumper.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /u ...

  6. 【Rxjs】 - 解析四种主题Subject

    原文地址: https://segmentfault.com/a/1190000012669794 引言 开发ngx(angular 2+)应用时,基本上到处都会用到rxjs来处理异步请求,事件调用等 ...

  7. Linux开机启动过程分析

    开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程.分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径. 启动第一步--加载BIOS 当 你打开计算机电源,计算 ...

  8. php screw加密与破解

    一.破解工具之php-screw-brute 1.项目地址 https://github.com/securifybv/php-screw-brute 2.项目介绍 此脚本可以恢复/爆破php scr ...

  9. 输入一个数值num,对1到num的所有的数值进行全排列

    输入一个数值num,对1到num的所有的数值进行全排列: 其实这个题目可以看成是将1到num个数字放入num个有序的盒子里面:当将最后一个数字放入盒子里的时候,就输出所有盒子里的数字:这就是一个排列的 ...

  10. java api操作

    java api操作 导入开发包 将hbase安装包中lib下包导入java项目   创建表   Configuration conf = HBaseConfiguration.create(); c ...