Django框架静态文件处理,中间件,上传文件操作实例详解

  

本文实例讲述了Django框架静态文件处理,中间件,上传文件操作。分享给大家供大家参考,具体如下:

  

静态文件处理h5> 在Django中,一般专门创建一个静态目录来存放静态文件(css、js、图像、视频等文件)。

  

。在创建目录前,我们需要配置静态文件的路径。如:

        #在项目的settings.py文件中,配置STATIC_URL,一般默认是:      STATIC_URL='/静态/' # '/静态/'是指uri,映射下面的静态目录。做映射可以对静态文件起到一个保护作用,避免受到攻击、下面介绍。      STATICFILES_DIRS=[   #指定文件目录,BASE_DIR指的是项目目录,静态是指存放静态文件的目录。   os.path。加入(BASE_DIR“静态”),   ]   之前      

b。创建静态目录,如图:

  

 Django框架静态文件处理,中间件,上传文件操作实例详解

  

c。例子

        {%从staticfiles加载静态%}& lt; !——从staticfiles中导入静态文件——比;   & lt; !DOCTYPE html>   & lt; html lang=癳n”比;   & lt; head>   & lt;元charset=皍tf - 8”比;   & lt; title> Title   & lt;/head>   & lt; body>   & lt; !——使用硬编码的方式请求图片,如果配置中的STATIC_URL的uri改变,这种硬编码的形式就加载不到资源——比;   & lt; img src=" https://www.yisu.com/static/myapp/1.png " alt="图像"/比;      & lt; br/比;      & lt; !——使用映射的方式加载图片,可以避免uri短链接改变导致图片资源加载不到的问题,要用这种方式,需要导入第一行——比;   & lt; img src=" https://www.yisu.com/zixun/{%静态'myapp/1。png %}”alt="图像"/比;         & lt;/body>   & lt;/html>   之前      <人力资源/>   
中间件
  

中间件是一个轻量级,底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。

  

。在Django中,中间件配置

  

在项目的settings.py文件中,有一个<代码> MIDDLEWARE_CLASSES>         MIDDLEWARE_CLASSES=[   “django.middleware.security.SecurityMiddleware”,   “django.contrib.sessions.middleware.SessionMiddleware”,   “django.middleware.common.CommonMiddleware”,   “django.middleware.csrf.CsrfViewMiddleware”,   “django.contrib.auth.middleware.AuthenticationMiddleware”,   “django.contrib.messages.middleware.MessageMiddleware”,   “django.middleware.clickjacking.XFrameOptionsMiddleware”,   ]      之前      

在settings.py文件中,默认是<代码>中间件> MIDDLEWARE_CLASSES>   

b。每个中间件都是一个独立的Python类,可以定义下面的方法一个或多个:

        __init__:无需任何参数,服务器响应第一个请求的时候调用一次,用于确定是否用当前中间件。      process_request(请求):执行视图之前被调用,在每个请求上调用,返回没有或HttpResponse对象。      process_view(请求、view_func view_args view_kwargs):调用视图之前调用,在每个请求上调用,返回没有或HttpResponse对象。      process_template_response(请求、响应):在视图刚好执行完毕之后调用,在每个请求上调用,返回实现了渲染方法的响应对象。      process_response(请求、响应):所有响应返回浏览器之前被调用,在每个请求上调用,返回HttpResponse对象。      process_exception(请求、响应异常):当视图抛出异常时调用,在每个请求上调用,返回一个HttpResponse对象。   之前      

如图:   

 Django框架静态文件处理,中间件,上传文件操作实例详解

  

使用中间件,可以干扰整个处理过程,每次请求中都会执行中间件的方法,中间件是实际上是AOP(面向切片编程)的概念。

  

c。示例

        #定义一个MyTrace类,作为中间件      类MyTrace(对象):   def process_request(自我,要求):   打印(“过程请求”)      def process_view(自我,请求,视图、views_args views_kwargs):   打印(“流程视图”)      def process_template_response(自我、请求、响应):   打印(“流程模板反应”)   返回渲染(请求=请求,template_name=癰ase.html”)      def process_response(自我、请求、响应):   print(反应过程)   返回HttpResponse(反应过程)      def process_exception(自我、请求、异常):   print(过程异常)   返回HttpResponse(异常)   

Django框架静态文件处理,中间件,上传文件操作实例详解