Django2.0.3如何实现页面静态化

我们在开发新闻系统的时候,为了提高系统的响应速度,通常我们会将常用的数据实现静态化,我们如何将新闻内容实现静态化呢?
环境:Python3.5 + Django2.0.3

引入模块:

from django.shortcuts import render
from .models import Category,Tag,Item,Ad,Article
import os
from django.conf import settings
import codecs
from django.template.loader import render_to_string

实现方法如下:

1、根据新闻 id,生成该新闻的静态文件名称;
2、静态文件名配上它存放的路径;
3、判断此新闻是否已静态化,如没有,则静态化
i)取新闻数据、分类数据等其它数据;
ii)将取出的数据渲染到模板中;
iii)将生成的新闻内容写到静态文件中去

4、根据request,访问生成的静态文件

详细代码参看下图:

本功能为课程:做项目学习django2.0.3中一个功能,课程详情可访问:项目学习django2.0.3
项目代码可加qq群:631575625 下载

原文地址:http://blog.51cto.com/13340781/2122150

时间: 2024-10-08 06:26:02

Django2.0.3如何实现页面静态化的相关文章

页面静态化1---概念(Apache内置压力测试工具使用方法)

三个概念 ①静态网址: http://127.0.0.1/regis.html ②动态网址:在请求页面时可以动态的传一些值进去. http://127.0.0.1/regis.php?id=45&title=今天天气不错 ③伪静态网址: 伪静态仅仅是对动态网址的一个重写,伪静态网址不能让动态网址静态化,搜索引擎不会认为伪静态就是HTML文档,其次伪静态可取,但是应把重心放在取出冗余参数.规范URL,竟可能的避免重复也等等. 举例说明:http://v.youku.com/v_show/id_XM

[项目构建 九]babasport 页面静态化技术Freemarker技术的介绍及使用实例.

一.FreeMarker简介 1.动态网页和静态网页差异 在进入主题之前我先介绍一下什么是动态网页,动态网页是指跟静态网页相对应的一种网页编程技术.静态网页,随着HTML代码的生成,页面的内容和显示效 果就不会再发生变化(除非你修改页面代码).而动态网页则不然,页面代码虽然没有发生变化,但是显示的内容却是可以随着时间.环境或者数据库操作的结果而 发生相应的变化.简而言之,动态网页是基本的HTML语法规范与java.VB.VC等高级程序设计语言.数据库编程等多种技术的融合,以实现对网站内容 和风格

php页面静态化

<?php /** * php页面静态化 * 静态化分为 真静态和伪静态 * 静态化的有点在于 SEO 和 安全性 使用缓存机制还可以大大提高网站的速度 */ /** * php自带的缓存机制 * 需要在php.ini中进行配置 * 或者使用ob_start()-> output_buffering:on * 关于几个缓存的函数:ob_start();ob_clean();ob_get_content();ob_end_clean();关闭缓存同时清空 * ob_flush();输出缓存里面的

PHP网站页面静态化之OB法

将PHP的执行页面预先转换成HTML,是所谓的PHP静态化方法之一. 其他还有模板替换法,opcache等方法. 静态化的作用: 提高网站的响应速度,降低服务器的负载: 用于搜索引擎的SEO: 利用PHP输出buffer直接写成html,定时后台定时扫一遍网站,是比较容易实现的网页静态化. 静态化之前: <?php for($i=0;$i<1000;$i++){ echo "bull<br>"; } ?> 静态化: <?php ob_start();

ASP.NET页面静态化 之 (伪静态)

1.页面为何要静态化 有利于搜索引擎优化(SEO) 使页面URL看起来更正规 真静态 的效率更高,并且更安全,HTML页面不会受Asp.Net相关漏洞的影响: 2.伪静态原理 其原理就是,在一个页面请求的执行期间将伪静态的URL重写成真实的URL路径: 3.那种条件下需要静态化 一个页面经常被访问,并且页面内容基本不变的: 所有用户访问的页面内容基本一样的. 例如:(新闻模块) 4.下面开始带领大家写一个伪静态的案例(新闻模块) (1)先创建新闻模块数据库 T_Channels表,存储新闻类别

C# MVC 页面静态化导致的问题

在设置页面静态化的路由,代码如 //静态路由 routes.MapRoute( name: "html", url: "{controller}/{action}.html", defaults: new { controller = "Main" , action = "Index" } ); 需要将静态的html文件处理程序映射到aspnet_isapi.dll处理. 可以在IIS中添加如图: 也可以在web.Config

Asp.net动态页面静态化之include和parse区别

Asp.net动态页面静态化之include和parse区别    #include就是在模版中在将其他模版包括进来,就好比网站的头部,尾部,广告模版等等,这些内容都是相同的时候,就可以做成一个单独的模版供各处引用. #parse的用法跟#include相类似,如果将上面的代码改成#parse之后,效果是一样的,#parse的特殊功能在于,它可以解析Nvelocity元素,比如,body.html 模版使用Nvelocity变量 $body ,如果使用#parse引用head.html和foot

Asp.net动态页面静态化之输出对象属性(实体关联)

Asp.net动态页面静态化之输出对象属性(实体关联) 模板引擎不单单可以输出单一的数据,还能直接输出对象的属性 using System; using System.Collections.Generic; using System.Linq; using System.Web; using NVelocity.Runtime; using NVelocity; using NVelocity.App; namespace czbk { /// <summary> /// Handler2

网站页面静态化与Apache调优(图)

------------------------------------------------------------------------------------------------------- 概念=> 静态网址(静态页面):  1.利于seo 2.访问速度块 3.防止sql注入 动态网址(php页面,可传参数):1.不利seo 2.访问速度慢 3.有被注入sql可能 伪静态(对动态网址的重写):  1.利于seo 2.防止注入 3.仍然访问数据库,访问速度没有变化 [email