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写一个简单的静态登陆页面

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

    2024年02月15日
    浏览(49)
  • 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日
    浏览(54)
  • 用CSS和HTML写一个水果库存静态页面

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

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

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

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

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

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

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

    2024年01月21日
    浏览(41)
  • django静态文件配置和使用

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

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

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

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

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

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

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

    2024年02月12日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包