首页 > 其他 > 详细

Django 中间件

时间:2020-04-04 23:31:06      阅读:66      评论:0      收藏:0      [点我收藏+]

Django 高级扩展

静态文件:css,js,图片,文件,字体等

配置settings文件

STATICFILES_DIRS=[
    os.path.join(BASE_DIR,‘static‘)
]

在前端页面里加入

{% load static %}

Django2.0 使用的是{% load static from staticfiles %}
Django3 用 {% load static %}就行
这样避免了使用绝对路径时,样式文件夹名改变,需要改很多引入代码的麻烦

实验

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link type="text/css" href="static/app1/css/style.css" rel="stylesheet">
   <script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
    <script src="{% static ‘app1/js/app1.js‘ %}" type="text/javascript" ></script>
</head>
<body>
<h1 class="hello">hello world</h1>
</body>
</html>

中间件

概述:
一个轻量级,底层的插件,可以介入Django的请求和响应
本质:一个python类

方法

1:init
不需要传参数,服务器响应第一个请求的时候自动调用,用于确定是否启用该中间件
2:process_request(self,request)
在执行视图之前调用(分配url匹配视图之前),每个请求上都会调用,返回None或者HttpResponse对象
3:process_view(self,request,view_func,view_args,view_kwargs)
调用视图之前,每个请求上都会调用,返回None或者HttpResponse对象
4:process_template_response(self,request,response)
在视图刚好执行完后调用,每个请求上都会调用,返回None或者HttpResponse对象
使用render
5:process_response(self,request,response)
所有响应返回浏览器之前调用,返回HttpResponse对象
6:process_exception(self,request,exception)
当视图抛出异常时调用,返回HttpResponse对象
技术分享图片

自定义中间件

工程目录下创建middleware创建app目录下创建python文件
技术分享图片

例:

from django.utils.deprecation import MiddlewareMixin
from django.http import  HttpResponse,request
class myMiddleware(MiddlewareMixin):
    def process_request(self,request):
        print("get的参数为:",request.GET.get("a"))

使用自定义中间件

配置settings文件,在MIDDLEWARE = [中添加

‘middleware.app1.myMiddleware.myMiddleware‘,

实验创建的是否成功

技术分享图片

Django 中间件

原文:https://www.cnblogs.com/rmxob/p/12633887.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!