「python+django」django中缓存,中间件,分页和CSV文件的使用
缓存
服务器端缓存是为了加快数据读取的存储方式。
整体缓存:是把视图函数的响应全部放在缓存存储区,用到的是装饰器@cache_page(15)
局部缓存:先用caches或者import cache引入cache对象,
浏览器端也可以缓存,这个时候浏览器不会向服务器发送请求,直接从缓存中读取资源。
中间件
中间件是轻量级的插件系统,用于全局改变django的输入或者输出。浏览器发送请求给主路由,找到对应的视图,服务器再返回响应给浏览器。主路由,视图和信息返回前面都可以嵌入中间件。Procees_request用在执行路由之前,process_view视图之前被调用,process_response响应返回浏览器之前被调用,process_exception处理过程中抛出异常时被调用,process_template_response视图执行完毕且视图返回的对象中包含render方法时被调用。具体用法如下图:
分页
分页是指在web页面有大量数据需要显示,为了阅读方便在每个页面只显示部分数据。Django提供了paginator类用于分页功能的实现。下面的例子中数据给到Paginator类,他负责分配, 每页显示多少条数据。Page用来掌握每一页具体的显示情况,比如第一页显示a,b。
首先循环一下page对象,将数据全部拿到。如果有上一页,显示一个标签,可以点开,如果没有上一页,设置为一个普通的字符,点不开。中间部分的逻辑是,如果循环到的页码和当前页码是一致的,那么当前页就是一个字符。如果是非当前页的页码,用a标签做成可点击的链接。
CSV文件
Python提供了内建库CSV,可直接通过该库操作CSV文件。要在网站中实现下载CSV,响应头中content_type类型修改为text/csv,响应会获得一个额外的content_disposition标头,其中包含CSV文件的名称。它将被浏览器用于开启“另存为…”对话框。