django3.0 web网站实现页面静态化

news/2024/5/16 18:38:31/文章来源:https://blog.csdn.net/weixin_42194215/article/details/111720130

思考:

网站的首页访问频繁,而且查询数据量大,其中还有大量的循环处理。

问题:

用户访问首页会耗费服务器大量的资源,并且响应数据的效率会大大降低。

解决:

页面静态化

一. 页面静态化介绍

1.为什么要做页面静态化

减少数据库查询次数。
提升页面响应效率。

2.什么是页面静态化

将动态渲染生成的页面结果保存成html文件,放到静态文件服务器中。
用户直接去静态服务器,访问处理好的静态html文件。

在这里插入图片描述

3.页面静态化注意点

用户相关数据不能静态化:

  • 用户名、购物车等不能静态化。

动态变化的数据不能静态化:

  • 热销排行、新品推荐、分页排序数据等等。

不能静态化的数据处理:

  • 可以在用户得到页面后,在页面中向后端发送Ajax请求获取相关数据。
  • 直接使用模板渲染出来。
  • 其他合理的处理方式等等。

二. 首页页面静态化实现

1.首页页面静态化实现步骤

  • 查询首页相关数据
  • 获取首页模板文件
  • 渲染首页html字符串
  • 将首页html字符串写入到指定目录,命名’xxx.html’

2.首页页面静态化实现

# 静态化首页 crons.py
import os
from collections import OrderedDictfrom django.template import loader
from django.conf import settingsfrom contents.models import ContentCategory
from contents.utils import get_categoriesdef generate_static_index_html():"""静态化首页"""# 查询并展示商品分类categories = get_categories()# 查询首页广告数据contents = OrderedDict()content_categories = ContentCategory.objects.all()for content_categorie in content_categories:contents[content_categorie.key] = content_categorie.content_set.filter(status=True).order_by('sequence')context = {'categories': categories, 'contents': contents}# 渲染模板template = loader.get_template('index.html')html_text = template.render(context)# 将模板文件写入到静态路径file_path = os.path.join(settings.STATICFILES_DIRS[0], 'index.html')with open(file_path, 'w', encoding='utf-8') as f:f.write(html_text)

3.首页页面静态化测试效果

打开django的shell: python manage.py shell
在这里插入图片描述
查看生产静态页面是否成功
在这里插入图片描述
提示:使用Python自带的http.server模块来模拟静态服务器,提供静态首页的访问测试。

进入到static上级目录

$ cd ~/projects/ebuy_project/ebuy_mall/ebuy_mall

开启测试静态服务器

$ python -m http.server 8080 --bind 127.0.0.1

点击链接访问
Serving HTTP on 127.0.0.1 port 8080 (http://127.0.0.1:8080/) …
在这里插入图片描述

4. 真正生产部署时, 将static静态文件拷贝到nginx服务器部署

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_753748.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html5数据分析报告模板,网站数据分析报告模板(做分析报告数据获取最专业的4个网...

通过几年的经验积累,下面小编将带你一起分析一下网站数据的整体流程(举例如下)小编将会以(www.bodao.org.cn)这个网站进行综合分析,我们需要打开一个站长工具tool.chinaz.com或者aizhan.com进行查询,首选对整个网站进行综合判断分析&#xff…

处理解决方案中网站名称为副本名称的方法

如图中所示,我用VS2012编辑器添加一个解决方案[TestSolution],接着我先添加一个网站[Test],然后因为路径选择不对,就把站点文件删除重建,结果就有了上图显示的问题了。大家会不会觉得奇怪,为什么我的物理文件夹名字是 Test,但是解…

《社交网站界面设计(原书第2版)》——3.17 重新登录

3.17 重新登录 是什么 用户加入社区一段时间后就不再使用或者忘记使用你所提供的服务了(参见图3-31和图3-32)。 何时使用你想将用户重新吸引到网站上。你想要通知用户新功能。如何使用 给用户提供一种方式,让他们可以选择在刚刚注册后就接受…

夺命雷公狗ThinkPHP项目之----企业网站22之网站前台中间层(解决代码冗余)

我们如果这样写代码虽然可以实现头部二级分类的显示,但是如果再别的控制器下那么会出现显示不了。。 如果再加多一段一样的代码也可以实现出一样的效果: 但是这样会导致代码冗余现象,所以我们为了解决这个问题,可以通过一个中间层…

服务架构:一步步构建大型网站架构详细介绍

今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但马克思告诉我们事物是在发展中不断前 进的,网站架构也是随着业务的扩大、用户的需求不断完善的,下面是一个网站架构逐步…

网站部署到万网

1:从万网申请主机还有域名 2:登陆主机管理平台 3:基础环境设置-〉域名绑定,把买的域名绑定到这个服务器上 4:用FTP把自己的开发好的网站上传到指定的FTP服务器地址,相对于。NET来说,要注意服务器…

个人网站架构设计(三) - 从设计到前端到后台

网站地址:http://barretlee.com 在五月份,写过两篇博客,提到了要给自己做个网站,当时人在实习,没太多的时间,只是把大概的思路捋了一番,顺道也买了个云主机(配置比较低,内…

coolwulf的乳腺癌网站介绍和操作方式

文章目录前言一、coolwulf的乳腺癌网站是什么!直接说功能可以实现的作业还有前两个点击下都有一个连接:使用前,请了解乳房X光检查的假阳性/假阴性。(里面可以看到乳房X光检查对于这个判断也不是过于准确的东西,会存在一…

Web网站的几个并发量级

2019独角兽企业重金招聘Python工程师标准>>> 评价一个网站的“大小”,处于视角的不同,有很多种衡量的方法,类似文章数,页面数之类的数据非常明显,也没有什么可以争议的。但对于并发来说,争议非常…

夺命雷公狗ThinkPHP项目之----企业网站21之网站前台二级分类显示名称(TP自定义函数展示无限极分类)...

我们实现网站二级分类的显示的时候&#xff0c;先要考虑的是直接取出顶级栏目&#xff0c;控制器代码如下所示&#xff1a; <?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller {public function index(){$mod M("Ca…

网站快速成型工具-Element UI

Element UIElement UI1 什么是Element UI&#xff1f;&#xff1f;&#xff1f;&#xff1f;2 搭建环境2.1 创建vue项目2.2 安装 element-ui组件2.3 Element UI 引入3 布局3.1 布局3.2 reset.css3.3 满屏填充4 导航条4.1 需求4.2 导航条4.3 路由4.4 页面刷新导航选中问题5 表格…

SPA、SEO、SSR相关概述与对比

SPA、SEO、SSRSPASEOSSRSPA和SSR对比Nuxt.js定义这三个名词的概念其实是为后面的nuxt.js来做铺垫 SPA 官方定义 SPA&#xff08;single page web application&#xff09;单页 Web 应用&#xff0c;Web 不再是一张张页面&#xff0c;而是一个整体的应用&#xff0c;一个由路由系…

禁止网站被别人通过iframe引用

我想说的如题&#xff0c;其实今天写这篇是出于PPC被人给引用了......这个问题弄的我好不尴尬啊...这种问题有一般有这么几种解决方案&#xff1a;解决方案一&#xff1a;js方法这种方法不可靠&#xff0c;不推荐使用<script type"text/javascript"> if(self …

网站性能优化的三重境界

&#xfeff;&#xfeff;这篇文章是关于网站性能优化体验的&#xff0c;性能优化是一个复杂的话题&#xff0c;牵涉的东西非常多&#xff0c;我只是按照我的理解列出了性能优化整个过程中需要考虑的种种因素。点到为止&#xff0c;包含的内容以浅显的介绍为主&#xff0c;如果…

LAMP网站架构方案分析

&#xfeff;&#xfeff;LAMP&#xff08;Linux-Apache-MySQL-PHP&#xff09;网站架构是目前国际流行的Web框架&#xff0c;该框架包括&#xff1a;Linux操作系统&#xff0c;Apache网络服务器&#xff0c;MySQL数据库&#xff0c;Perl、PHP或者Python编程语言&#xff0c;所…

网站缓存技术总结( ehcache memcache redis)

&#xfeff;&#xfeff;网站技术高速发展的今天&#xff0c;缓存技术已经成为大型网站的一个关键技术&#xff0c;缓存设计好坏直接关系的一个网站访问的速度&#xff0c;以及购置服务器的数量&#xff0c;甚至影响到用户的体验。 网站缓存按照存放的地点不同&#xff0c;可…

Python脚本爬取网站美女照片

上次无意之中看到一个网站&#xff0c;里面全是美女的照片&#xff0c;我就心想&#xff0c;哪天有时间了得把这网站的所有美女照片都得爬下来。今天有时间&#xff0c;写了点代码&#xff0c;爬去了网站的所有照片。附上战果&#xff01;图片实在是太多了&#xff0c;爬半个多…

网站优化基础教程:如何挖掘更多的长尾关键词?六种挖掘关键词的方法!

网站优化的第一步就是确定关键词&#xff0c;然后在做优化&#xff0c;那么新站应该怎么确定关键词&#xff0c;又该怎么去发掘更多的长尾关键词呢&#xff1f;来和发迹创业网一起看看。 为什么要做长尾关键词&#xff1f; 主要原因是长尾容易优化&#xff0c;首先我们需要确定…

网站目录扫描工具

目录 御剑 dirbuster Webdirscan 网站后台扫描工具都是利用目录字典进行爆破扫描,字典越多,扫描到的结果也越多。常用的网站后台扫描工具御剑、dirbuster和Webdirscan,不管哪个工具,要想扫描到更多的东西,都必须要有一个强大的目录字典! 御剑 御剑也是一款好用的网站…

Social engineering tookit 钓鱼网站

目录 Set 钓鱼攻击 网站克隆 Set Set(Social engineering tookit)是一款社会工程学工具,该工具用的最多的就是用来制作钓鱼网站。 Kali中自带了该工具。 钓鱼攻击 在应用程序中的漏洞利用工具集里面。 打开之后