标签 django 下的文章

优雅地改进 Django 中的模板碎片缓存


起步

Django 的缓存体系提供了模板片段缓存:

{% load cache %}
{% cache 500 sidebar %}
    .. sidebar ..
{% endcache %}

但使用这个模板缓存还是需要每次都把需要的变量 sidebar 传给模板,不然当缓存过期时碎片是空白的。于是就需要的视图中获取这些数据:

def test_view(request):
    # code...
    sidebar = get_data()
    return render(reqeust, 'test_view.html', {'sidebar': sidebar})

如果这个数据获取的过程比较耗时,那么这个碎片缓存形同虚设。


Django 源码阅读(四): WSGI 初探


起步

在第一章说到,django 使用 WSGIServer 作为内置服务器软件,这个类的实现在 django/core/servers/basehttp.py 文件中定义,这个类继承自 wsgiref.simple_server.WSGIServer 。django中自带的各种 ServerHandler , WSGIServer , WSGIRequestHandler 都基于自python模块 wsgiref 进行及其简单的封装而成的。