Django高级管理静态文件和中间件5.1

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
性能测试 PTS,5000VUM额度
云原生网关 MSE Higress,422元/月
简介: Django高级管理静态文件和中间件5.1

管理静态文件


  • 项目中的CSS、图片、js都是静态文件


配置静态文件


  • 在settings 文件中定义静态内容


STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]


在项目根目录下创建static目录,再创建当前应用名称的目录


mysite/static/myapp/


在模板中可以使用硬编码


/static/my_app/myexample.jpg


在模板中可以使用static编码


{ % load static from staticfiles %}
<img src="{ % static "my_app/myexample.jpg" %}" alt="My image"/>


中间件


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


  • 激活:添加到Django配置文件中的MIDDLEWARE_CLASSES元组中


  • 每个中间件组件是一个独立的Python类,可以定义下面方法中的一个或多个
  • _init _:无需任何参数,服务器响应第一个请求的时候调用一次,用于确定是否启用当前中间件


  • process_request(request):执行视图之前被调用,在每个请求上调用,返回None或HttpResponse对象


  • process_view(request, view_func, view_args, view_kwargs):调用视图之前被调用,在每个请求上调用,返回None或HttpResponse对象


  • process_template_response(request, response):在视图刚好执行完毕之后被调用,在每个请求上调用,返回实现了render方法的响应对象


  • process_response(request, response):所有响应返回浏览器之前被调用,在每个请求上调用,返回HttpResponse对象


  • process_exception(request,response,exception):当视图抛出异常时调用,在每个请求上调用,返回一个HttpResponse对象


  • 使用中间件,可以干扰整个处理过程,每次请求中都会执行中间件的这个方法


  • 示例:自定义异常处理


与settings.py同级目录下创建myexception.py文件,定义类MyException,实现process_exception方法


from django.http import HttpResponse
class MyException():
    def process_exception(request,response, exception):
        return HttpResponse(exception.message)


将类MyException注册到settings.py中间件中


MIDDLEWARE_CLASSES = (
    'test1.myexception.MyException',
    ...
)


定义视图,并发生一个异常信息,则会运行自定义的异常处理


目录
相关文章
|
2月前
|
中间件 Python
理解Django中间件及其应用实例
理解Django中间件及其应用实例
32 0
|
4月前
|
监控 安全 中间件
Python Django 后端架构开发: 中间件架构设计
Python Django 后端架构开发: 中间件架构设计
43 1
|
4月前
|
安全 中间件 项目管理
Django 后端架构开发:分页器到中间件开发
Django 后端架构开发:分页器到中间件开发
44 1
|
4月前
|
安全 中间件 开发者
Django中间件
【8月更文挑战第21天】
27 5
|
4月前
|
中间件 数据库连接 UED
Django中间件秘籍:如何用几行代码让你的应用变得超级强大?
【8月更文挑战第31天】中间件是Django框架的核心特性,位于视图与HTTP服务器之间,允许全局处理请求和响应,增强Web应用功能。通过实现`MiddlewareMixin`类的方法,如`process_request`和`process_response`,可以轻松实现请求预处理或响应后处理。中间件应用场景广泛,包括用户认证、CSRF防护和数据库连接管理等。创建并配置中间件需将其加入`settings.py`的`MIDDLEWARE`列表,顺序决定执行优先级。合理利用中间件能提高代码重用性和应用性能,带来更好的用户体验。
53 0
|
4月前
|
前端开发 中间件 索引
Django入门到放弃之中间件
Django入门到放弃之中间件
|
5月前
|
缓存 监控 中间件
中间件配置和管理问题
【7月更文挑战第14天】
70 1
|
6月前
|
中间件 开发者 C++
Django中间件探索:揭秘中间件在Web应用中的守护角色与实战应用
Django中间件探索:揭秘中间件在Web应用中的守护角色与实战应用
|
7月前
|
中间件 Python
中间件应用Django Middleware(Python)
【5月更文挑战第3天】中间件应用Django Middleware(Python)
80 6
中间件应用Django Middleware(Python)
|
6月前
|
缓存 JSON API
在django项目中使用装饰器管理路由
【6月更文挑战第12天】本文介绍了Python装饰器在API管理中的应用,包括用于延迟计算、缓存和转换函数的装饰器。实践中,以Django Rest Framework为例,演示了如何使用装饰器定义GET、POST、PUT和DELETE请求的视
59 1