当前位置:K88软件开发文章中心网站服务器框架django → 文章内容

Django 中间件

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-25 14:19:28

st.META['REMOTE_ADDR'] 。在站点位于某个反向代理之后的、每个request的REMOTE_ADDR 都被指向 127.0.0.1 的情形下,这一功能将非常有用。 It sets request.META['REMOTE_ADDR']based on request.META['HTTP_X_FORWARDED_FOR'] , if the latter is set. This is useful if you’re sitting behind a reverse proxy that causes each request’s REMOTE_ADDR to be set to 127.0.0.1 .红色警告!这个middleware并 不 验证 HTTP_X_FORWARDED_FOR 的合法性。如果站点并不位于自动设置 HTTP_X_FORWARDED_FOR 的反向代理之后,请不要使用这个中间件。 否则,因为任何人都能够伪造 HTTP_X_FORWARDED_FOR 值,而 REMOTE_ADDR 又是依据 HTTP_X_FORWARDED_FOR 来设置,这就意味着任何人都能够伪造IP地址。只有当能够绝对信任 HTTP_X_FORWARDED_FOR 值得时候才能够使用这个中间件。会话支持中间件Middleware class: django.contrib.sessions.middleware.SessionMiddleware .这个中间件激活会话支持功能. 细节请参见第12章。 See Chapter 14 for details.站点缓存中间件Middleware classes: django.middleware.cache.UpdateCacheMiddleware anddjango.middleware.cache.FetchFromCacheMiddleware .这些中间件互相配合以缓存每个基于Django的页面。 已在第13章中详细讨论。事务处理中间件Middleware class: django.middleware.transaction.TransactionMiddleware .这个中间件将数据库的 COMMIT 或 ROLLBACK 绑定到request/response处理阶段。 如果view函数成功执行,则发出 COMMIT 指令。 如果view函数抛出异常,则发出 ROLLBACK 指令。这个中间件在栈中的顺序非常重要。 其外层的中间件模块运行在Django缺省的 保存-提交 行为模式下。 而其内层中间件(在栈中的其后位置出现)将置于与view函数一致的事务机制的控制下。关于数据库事务处理的更多信息,请参见附录C。

上一页  [1] [2] [3] 


Django 中间件