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 %}
Title
hello world
中间件
概述:
一个轻量级,底层的插件,可以介入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)
自定义中间件
工程目录下创建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',