Django框架静态文件处理、中间件、上传文件操作实例详解框架静态文件处理、中间件、上传文件操作实例详解
本文实例讲述了Django框架静态文件处理、中间件、上传文件操作。分享给大家供大家参考,具体如下:
Django静态文件处理、中间件、上传文件静态文件处理、中间件、上传文件
静态文件处理静态文件处理
在Django中,一般专门创建一个static目录来存放静态文件(css,js,image,video等文件)。
a. 在创建目录前,我们需要配置静态文件的路径。如:
#在项目的settings.py文件中,配置STATIC_URL,一般默认是:
STATIC_URL = '/static/' # '/static/'是指uri,映射下面的static目录。做映射可以对静态文件起到一个保护作用,避免受到攻击,下面介
绍。
STATICFILES_DIRS = [
# 指定文件目录,BASE_DIR指的是项目目录,static是指存放静态文件的目录。
os.path.join(BASE_DIR , 'static'),
]
b. 创建static目录,如图:
c. 例子
{% load static from staticfiles %} <!--从staticfiles中导入静态文件-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--使用硬编码的方式请求图片,如果配置中的STATIC_URL的uri改变,这种硬编码的形式就加载不到资源-->
<img src="/static/myapp/1.png" alt="image"/>
<br/>
<!--使用映射的方式加载图片,可以避免uri短链接改变导致图片资源加载不到的问题,要用这种方式,需要导入第一行-->
<img src="{% static 'myapp/1.png' %}" alt="image"/>
</body>
</html>
中间件中间件
中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。
a. 在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',
]