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. Rocketmq异步发送消息

    package com.bfxy.rocketmq.quickstart; import java.util.List; import org.apache.rocketmq.client.excep ...

  2. nginx详解(代理服务器的解释+nginx 在linux 下的安装+nginx.conf 中的配置解释)

    一.概论 1.什么是代理服务器 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬 ...

  3. LC 638. Shopping Offers

    In LeetCode Store, there are some kinds of items to sell. Each item has a price. However, there are ...

  4. dede 友情链接显示不全解决方法

    只需在html页面中调用友情链接的地方修改链接长度即可 titlelen: 链接文字长度(修改此数值即可) row: 友情链接的数量 {dede:flink titlelen="50&quo ...

  5. 监控数据库DDL操作日志

    背景 为了监控好生产环境下各个数据库服务器上DDL操作日志,便于运维工程师管控好风险,我们有必要关注当前实例下的所有的DDL操作以及对应的IP和hostname. 测试环境 Microsoft SQL ...

  6. C++typedef的详细用法

    转自知乎的一段解释: 作者:知乎用户链接:https://www.zhihu.com/question/29798061/answer/144423125来源:知乎著作权归作者所有.商业转载请联系作者 ...

  7. rocketMQ配置事故

    公司的binlog消息通知,基于canal采集然后转发到rocketmq推送给业务进行消费. 基于此机制,为了实现实时计算通用源端处理,订阅了若干rocketmq的topic进行数据的幂等事务性投递到 ...

  8. A simple dynamic library implemented in C# 4.0 to deal with XML structure

    https://github.com/cardinals/XmlToObjectParser A simple dynamic library implemented in C# 4.0 to dea ...

  9. SSM项目模板

    项目一:恒德物流平台(SSM) ◎开发周期:3个月                           开发模式:团队4个人 ◎开发环境:jdk1.8.tomcat8.5       开发工具:IDE ...

  10. 【VS开发】socket编程原理

    socket编程原理 1.问题的引入 1) 普通的I/O操作过程: UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-rea ...