标签 django 下的文章

解决Djanog中覆盖字段部件模板无效问题


起步

虽然这种场景很少见,但我还是希望能够在 admin 窗口中使用自己的表单。根据模板的载入顺序,从 Django 目录中的 forms/templates/django/forms/widgets/textarea.html 复制一份到项目的模板目录 : templates/django/forms/widgets/textarea.html 。给新模板添加了写修改后,重启 django。

发现这并不起作用


Django 中使用流响应处理视频


起步

利用 html5 的 <video> 标签可以播放:

<video width="320" height="240" controls>
  <source src="/static/video/demo.mp4" type="video/mp4">
  您的浏览器不支持Video标签。
</video>

但是这样的方式,视频中的进度条无法使用,而且以静态文件方式返回的话,后台的程序会占用大量的内存。

使用响应流的方式能很好的解决这两个问题。


优雅地改进 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})

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