Django - 页面静态化基本使用(一)

这篇具有很好参考价值的文章主要介绍了Django - 页面静态化基本使用(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. 前言

一个网页会有很多数据是不需要经常变动的,比如说首页,变动频率低而访问量大,我们可以把它静态化,这样就不需要每次有请求都要查询数据库再返回,可以减少服务器压力
我们可以使用Django的模板渲染功能完成页面渲染

二. 什么是页面静态化:

所谓页面静态化,就是提前渲染出完整的html页面,以静态文件的形式存起来,那么下一次浏览器访问的时候,直接返回该静态文件就可以了
1)减少数据库查询次数
2)提高页面响应效率

1.页面静态化的作用:

1)将动态渲染生成的页面结果保存成html文件,放到静态文件服务器中。
2)用户直接去静态服务器,访问处理好的静态html文件。
Django - 页面静态化基本使用(一)

2.页面静态化的注意点

1)页面中用户相关数据不能静态化。
2)动态变化的数据不能静态化。

3.django实现页面静态化的步骤:

1)新建一个子应用book(python manage.py startapp book)
Django - 页面静态化基本使用(一)
2) 在配置文件中注册子子应用,并且配置数据库

INSTALLED_APPS = [
'book.apps.BookConfig',
	]
DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',  # 数据库引擎
    'HOST': 'xxxxxxx',  # 数据库主机
    'PORT': 3306,  # 数据库端口
    'USER': 'root',  # 数据库用户名
    'PASSWORD': 'xxxxxxxx',  # 数据库用户密码
    'NAME': 'test'  # 数据库名字
	}
}

3)在book子应用下的modles文件下创建模型(并通过makemigrations,migrate命令生成迁移文件,迁移数据库)

	from django.db import models
	# Create your models here.
	# 准备书籍列表信息的模型类
	class BookInfo(models.Model):
	    # 创建字段,字段类型...
	    name = models.CharField(max_length=20, verbose_name='名称')
	    pub_date = models.DateField(verbose_name='发布日期', null=True)
	    readcount = models.IntegerField(default=0, verbose_name='阅读量')
	    commentcount = models.IntegerField(default=0, verbose_name='评论量')
	    is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')

4)迁移后的数据库(插入数据)

insert into bookinfo(name, pub_date, readcount,commentcount, is_delete) values
('射雕英雄传', '1980-5-1', 12, 34, 0),
('天龙八部', '1986-7-24', 36, 40, 0),
('笑傲江湖', '1995-12-24', 20, 80, 0),
('雪山飞狐', '1987-11-11', 58, 24, 0);

5)准备好的Django中的模板文件
Django - 页面静态化基本使用(一)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{ name }}</title>
</head>
<body>
<ul>
    <li>{{ name }}</li>
    <li>{{ pub_date }}</li>
    <li>{{ readcount }}</li>
    <li>{{ commentcount }}</li>
</ul>
</body>
</html>

6)在book子应用文件夹下新建utils.py文件,并根据需求写入相应代码

import os

# 导入django配置文件
if not os.getenv('DJANGO_SETTINGS_MODULE'):
    os.environ['DJANGO_SETTINGS_MODULE'] = 'testdjango.settings'

import django

django.setup()
# 通过django template子应用下的loader文件进行模板的渲染
from django.template import loader 
from django.conf import settings
# 导入book模型类
from book.models import BookInfo


def generate_static_html(pk):
    try:
        book = BookInfo.objects.get(id=pk)
    except BookInfo.DoesNotExist:
        return
    # 构建上下文
    context = {
        'name': book.name,
        'pub_date': book.pub_date,
        'commentcount': book.commentcount,
        'readcount': book.readcount,
    }
    # 通过loader文件中的get_template方法加载模板文件
    template = loader.get_template('book.html')
    # 渲染上下文到模板文件中
    book_html_text = template.render(context=context)
    # 构建保存路径
    path = os.path.join(settings.BASE_DIR, 'static/' + str(book.id) + '.html')
    with open(path, 'w', encoding='utf-8') as f:
        f.write(book_html_text)

# 程序入口
if __name__ == '__main__':
    for i in range(1, 5):
        print(i)
        generate_static_html(i)

7)在终端下进行入book子应用文件夹下,python utils.py运行此文件或者右击运行,生成以下四个html文件
Django - 页面静态化基本使用(一)
8)通过python自带的文件服务器查看效果,进入static文件夹,运行 python -m http.server 8080 --bind 127.0.0.1
Django - 页面静态化基本使用(一)
Django - 页面静态化基本使用(一)
关于Django - 页面静态化的基本使用介绍完毕,希望对你有所帮助!文章来源地址https://www.toymoban.com/news/detail-475243.html

到了这里,关于Django - 页面静态化基本使用(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 用HTML写一个简单的静态登陆页面

    用HTML写一个简单的静态登陆页面

    以上代码创建了一个简单的登录页面,其中包含一个容器( .container )来放置登录表单。表单包括一个用户名输入框( input type=\\\"text\\\" )以及一个密码输入框( input type=\\\"password\\\" ),还有一个登录按钮( button )用于提交表单。页面使用了一些简单的 CSS 样式来美化表单的外观。

    2024年02月15日
    浏览(8)
  • HTML、PHP实战:搭建一个网页登录页面。

    HTML、PHP实战:搭建一个网页登录页面。

    一、实验环境。 MySQL5.7.26 FTP0.9.60 Apache2.4.39 我这里用的是PHPstudy小皮一键搭建的。 数据库  二、登录页面。 登录页面前端代码 文件名:denglu.html 登录页面后端代码 文件名:denglu.php 使用127.0.0.1跟文件名访问网页。 效果演示   可以看到当我们输入用户名:zhangsan 密码:12345

    2024年02月06日
    浏览(12)
  • 用CSS和HTML写一个水果库存静态页面

    用CSS和HTML写一个水果库存静态页面

    HTML代码: CSS代码(保存为styles.css): 这个示例展示了一个简单的水果库存静态页面,其中包含: 一个顶部的header元素,显示页面标题。 一个使用table标签创建的表格,用于展示水果库存信息。 表格包含一个thead部分,包含列标题,和一个tbody部分,包含具体的水果库存数据

    2024年02月14日
    浏览(7)
  • 用html实现一个静态登陆页面-可根据需求更改样式

    用html实现一个静态登陆页面-可根据需求更改样式

    一、创建html文件,vscode下载相关插件 我们先选择一个文件夹创建login.html,.之前的文件命无所谓,.之后就必须为html或者htm。 在编辑改文件输入!且出现提示后按回车或按tab快捷生成基础代码。 然后我们下载一个可以方便我们开发的插件。 搜索之后点击一下然后下载即可。

    2024年02月04日
    浏览(11)
  • 阿里云服务器+宝塔 (尝试部署一个最简单的静态页面)

    阿里云服务器+宝塔 (尝试部署一个最简单的静态页面)

    进入网址:服务器购买地址 选择预装宝塔面板 购买完成后前往控制台 查看当前实例 设置或修改密码 设置用户名和密码 输入用户名和密码 连接成功页面如下: 请看客老爷移步到这个文章,传送门🙈 在命令行中输入: bt default 这里可以显示访问地址和密码,如图。 直接复

    2024年01月21日
    浏览(11)
  • 写一个简单的静态html页面demo,包含幻灯片

    写一个简单的静态html页面demo,包含幻灯片

    效果图: 代码如下,图片文件可自行更换:

    2024年02月11日
    浏览(13)
  • django静态文件配置和使用

    django静态文件配置和使用

    一、首先需要了解的知识点是: 1、出于对效率和安全的考虑,django管理静态文件的功能仅限于在开发阶段的debug模式下使用,且需要在配置文件的INSTALLED_APPS中加入django.contrib.staticfiles(django工程创建后默认已经安装),网站正式部署上线后,静态文件是由Nginx等服务器管理。

    2024年02月02日
    浏览(46)
  • Django高级扩展之静态文件和ajax使用

    Django高级扩展之静态文件和ajax使用

    目录 使用静态文件 创建静态文件目录 Settings.py配置 创建css文件 路由与视图 设置路由 视图 模板使用静态文件 调用css 调用js 调用图片 优化路径 加载标签 修改文件路径 修改图片路径 修改js路径 修改css路径 使用Ajax 应用场景 示例 路由 视图 模板 Javascript 总结 css、js、图片、

    2024年02月09日
    浏览(44)
  • 制作一个简单HTML旅游网站(HTML+CSS+JS)无锡旅游网页设计与实现8个页面

    制作一个简单HTML旅游网站(HTML+CSS+JS)无锡旅游网页设计与实现8个页面

    👨‍🎓静态网站的编写主要是用 HTML DⅣV+ CSSJS等来完成页面的排版设计👩‍🎓,一般的网页作业需要融入以下知识点:div布局、浮动定位、高级css、表格、表单及验证、js轮播图、音频视频Fash的应用、uli、下拉导航栏、鼠标划过效果等知识点,学生网页作业源码,制作水平

    2024年02月10日
    浏览(12)
  • 云服务 Ubuntu 20.04 版本 使用 Nginx 部署静态网页

    云服务 Ubuntu 20.04 版本 使用 Nginx 部署静态网页

    所需操作:                 1.安装Nginx                  2.修改配置文件                  3.测试、重启 Nginx                  4.内部修改防火墙                  5.配置解析                  6.测试是否部署成功 1.安装Nginx   1.1.测试是否安装没问题 在网页上

    2024年02月12日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包