其他

静态文件

在网页上使用的CSS JS IMAGES 文件都属于静态文件
在项目目录下 创建static文件夹 在文件夹内将CSS JS IMG 分类
配置项目管理目录下的setting.py文件

STATIC_URL = "访问静态文件的地址"
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]  # 设置静态文件的物理地址

STATIC_URL 是访问静态文件对应的url
STATICFILES_DIRS 是静态文件存放的物理目录地址

模板中动态生成静态文件url

首先导入
{% load staticfiles %}

在需要使用静态文件路径的地方输入
{% static %}
对应着settings中静态文件URL路径

{% static /images/mm.jpg %}

静态文件的加载顺序

静态文件的查找首先到 settings文件里配置的地址查找静态文件
再到 应用下的static 文件夹下查找静态文件

中间件

在执行视图函数前 先执行中间件函数

获取浏览器端的IP地址

使用request对象的META属性
META 属性是一个字典字典中的REMOTE_ADDR保存了客户端的IP地址
request.META["REMOTE_ADDR"] 取得客户端的IP地址

使用中间件

在应用下创建一个py文件
定义一个名字为process_view的函数
但是process_view 函数必须定义在一个类里面
当执行视图函数前就必然会先执行这个函数

class Middleware(object):
    def process_view(self, request, view_func, *view_args, **view_kwargs)

process_view 函数的参数是固定的

中间件所在的类叫做中间件类
process_view 叫做中间件函数

必须在settings 中注册中间件类
在MIDDLEWARE_CLASSES中添加
"应用名.py文件名.中间件类名",
"book.middleware.Middleware",

在中间件类中
__init__(self) : 服务器响应第一个请求的时候调用
process_request(self, request) : 产生request对象, 进行url匹配之前调用
process_view(self, request, view_func, *args, **kwargs) : url匹配之后, 调用视图函数之前
process_response(self, request, response) : 视图函数return后,反回给浏览器之前会执行这个函数,内容会被保存在response参数内,所以这个函数必须return respons给浏览器
process_exception(self, request, exception) : 视图函数出现异常,调用这个函数

如果某个中间件直接return了HTTP内容 那么将直接跳转到response中间件函数
如果注册的多个中间件类中包含process_exception函数 调用的顺序跟在settings中注册的顺序是相反

你可能感兴趣的:(其他)