Django框架之Django使用自带模板

news2024/11/14 13:42:07

Django使用自带模板

1 配置

在工程中创建模板目录templates。

在settings.py配置文件中修改TEMPLATES配置项的DIRS值:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],  # 此处修改
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

2 定义模板

在templates目录中新建一个模板文件,如index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{{ city }}
</body>
</html>

3 模板渲染

调用模板分为两步骤:

  1. 找到模板 loader.get_template(模板文件在模板目录中的相对路径) -> 返回模板对象

  2. 渲染模板 模板对象.render(context=None, request=None) -> 返回渲染后的html文本字符串 context 为模板变量字典,默认值为None request 为请求对象,默认值为None

例如,定义一个视图

from django.http import HttpResponse
from django.template import loader

def index(request):
    # 1.获取模板
    template=loader.get_template('index.html')

    context={'city': '北京'}
    # 2.渲染模板
    return HttpResponse(template.render(context))

Django提供了一个函数render可以简写上述代码。

render(request对象, 模板文件路径, 模板数据字典)

from django.shortcuts import render

def index(request):
    context={'city': '北京'}
    return render(request,'index.html',context)

4 模板语法

4.1 模板变量

变量名必须由字母、数字、下划线(不能以下划线开头)和点组成。

语法如下:

 

模板变量可以使python的内建类型,也可以是对象。

def index(request):
    context = {
        'city': '北京',
        'adict': {
            'name': '西游记',
            'author': '吴承恩'
        },
        'alist': [1, 2, 3, 4, 5]
    }
    return render(request, 'index.html', context)

 

 

4.2 模板语句

1)for循环:

 

 

2)if条件:

 

比较运算符如下:

==
!=
<
>
<=
>=

布尔运算符如下:

and
or
not

注意:运算符左右两侧不能紧挨变量或常量,必须有空格。

 

 

4.3 注释

1)单行注释语法如下:

 

 

2)多行注释使用comment标签,语法如下:

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue-router 的基本用法

vue-router 的基本用法 1.什么是 vue-router vue-router 是 vue.js 官方给出的路由解决方案。它只能结合 vue 项目进行使用&#xff0c;能够轻松的管理 SPA 项目中组件的切换。 vue-router 的官方文档地址&#xff1a;https://router.vuejs.org/zh/ 2.vue-router 安装和配置的…

GIT分支管理策略

git基本操作git操作的前提条件:本地windows安装git学习idea中的插件使用idea的git基本操作:远程仓库remote更新fetch:git fetch拉取pull: git pull上传push: git push合并merge: git merge 合并分支本地提交commit:git commit分支branch: git branch 查看分支或者 切换分支上述…

SpringBoot整合Junit

创建项目 idea创建空项目Empty Project。项目中创建模块&#xff0c;选择SpringBoot Initialize快速构建SpringBoot项目。 依赖这里什么也不用选择。 pom文件中默认有两个依赖: spring-boot-starter springboot如果不导入任何依赖&#xff0c;默认的一个基础依赖。spring-…

5.3 线程安全问题解决方案

文章目录1.概述2.同步和异步3.synchronized同步关键字3.1 写法3.2 前提3.3 特点4.练习-改造售票案例-继承Thread4.1 代码实现4.2 注意事项5.练习-改造售票案例-实现Runnable接口5.1 代码实现5.2 注意事项6.练习-改造售票案例-使用线程池6.1 代码实现6.2 代码分析7.线程锁7.1 悲…

七、确保web安全的HTTPS

HTTPS 1、HTTP 的缺点 HTTP的主要缺点&#xff1a; 通信使用明文&#xff08;不加密&#xff09;&#xff0c;内容可能会被窃听 HTTP 本身不具备加密的功能&#xff0c;因此无法做到对通信整体&#xff08;使用 HTTP 协议通信的请求和响应的内容&#xff09;进行加密。所以按…

actipro-winforms-controls-23.1.0 Crack

actipro-winforms一组用于构建漂亮的 Windows 窗体桌面应用程序的 UI 控件&#xff0c;用于构建 IDE 的高级停靠窗口、MDI、属性网格、树控件和文件夹/文件浏览器&#xff0c;用于常见数据类型、自动完成、屏蔽编辑和代码编辑的强大编辑器&#xff0c;功能区、图表、微型图表、…

Centos7 安装 MySQL 8.0.31详细教程(亲测无障碍必成功)

操作之前&#xff0c;首先检查防火墙是否关闭&#xff08;直接设置永久关闭&#xff09; 查看防火墙状态&#xff1a;firewall-cmd --state 禁止firewall开机启动 永久生效&#xff1a;systemctl disable firewalld.service 重启电脑&#xff1a;reboot 1. 在FinallShell上传或…

Julia 教程

Julia 是一个开源的编程语言&#xff0c;采用 MIT 许可证&#xff0c;每个人都可以免费使用。 Julia 是一个面向科学计算的高性能动态高级程序设计语言。 Julia 最初是为了满足高性能数值分析和计算科学的需要而设计的&#xff0c;不需要解释器&#xff0c;速度快。 Julia 于…

筛选效率直接起飞,复杂场景秒变简单丨三叠云

表单 路径 表单设计 >> 高级筛选 功能简介 筛选条件优化升级&#xff0c;支持多种混合条件筛选。 功能描述&#xff1a; 本次更新支持2个层级的条件&#xff0c;系统处理数据时&#xff0c;将会先根据第二个层级的条件关系找出数据、继而再根据第一层级即分组之间的…

解决CondaUpgradeError网上的方法都不奏效(回退版本、upgrade/update都不行)的问题和CondaValueError

问题描述 Executing transaction: failed ERROR conda.core.link:_execute(502): An error occurred while installing package ‘conda-forge::certifi-2022.9.24-pyhd8ed1ab_0’. CondaUpgradeError: This environment has previously been operated on by a conda version…

Java 基础——File 类与 I/O 流

目录1.java.io.File 类的使用1.1.概述1.2.构造器1.3.常用方法1.3.1.获取文件和目录基本信息1.3.2.列出目录的下一级1.3.3.File类的重命名功能1.3.4.判断功能的方法1.3.5.创建、删除功能2.I/O 流原理及流的分类2.1.I/O 原理2.2.流的分类2.3.流的 API3.节点流之一&#xff1a;Fil…

项目经理PMO分别是什么?

1. PMO是什么&#xff1f;&#xff08;1&#xff09;定义PMO项目经理&#xff08;Project Management Office Manager&#xff09;&#xff0c;也称为项目管理办公室经理、项目管理中心或者项目管理部。一般来说&#xff0c;PMO就是负责公司项目管理政策、标准的制定&#xff0…

C/C++每日一练(20230220)

目录 1. 利用字母组成图形 2. 子集 II 3. 路径总和 II 附录 深度优先搜索算法 广度优先搜索算法 1. 利用字母组成图形 利用字母可以组成一些美丽的图形&#xff0c;下面给出了一个例子&#xff1a; ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形&…

ROS2入门-话题-服务-接口

ROS2入门-话题-服务-接口 本文学习的是《动手学ROS2》 报错放在另一个文章中。 文章目录ROS2入门-话题-服务-接口Linux常用命令sudochomd 修改文件权限安装软件apt安装软件dpkg安装deb包打开终端VS code关机/重启静态链接库/动态链接库Cmake设置treeROS节点功能包创建功能包列…

数据分析,如何看待我国1400万人忍受极端通勤,单程通勤超60分钟!

女生极限通勤每天来回 6.5 小时&#xff0c;上海某位女士公司离家单程约100公里左右&#xff0c;单程通勤需要3小15分&#xff0c;来回通勤时间为6.5小时。如此长的通勤时间却不是个例&#xff0c;全国有超1400万人正在忍受单程超过60分钟的极端通勤&#xff0c;如何看待我国 1…

将默认安装的 WSL2 迁移至指定目录

将默认安装的 WSL2 迁移至指定目录WSL2 默认安装在 C 盘下&#xff0c;系统盘空间有限&#xff0c;推荐更改安装目录。 1. 默认安装的 WSL2 目录 C:\Users\cheng\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx 2. …

使用Swiper插件实现视频轮播,怎么实现切换自动播放视频?

一、需求分析 这两天讨论了一个项目需求&#xff0c;刚开始是希望&#xff1a;轮播图中嵌入视频&#xff0c;轮播到视频自动播放&#xff0c;播放完毕切换下一张轮播&#xff0c;手动切换时暂停播放视频。后面因为自动播放没有声音&#xff0c;便暂时放弃了这个想法&#xff0…

第2讲-数据库系统的结构抽象与演变(测试题总结)

一、测试题 DBS的三级模式&#xff1a;外模式&#xff08;也叫用户模式或子模式&#xff09;&#xff0c;模式&#xff08;也叫逻辑模式&#xff09;&#xff0c;内模式&#xff08;也叫存储模式&#xff09; 外模式/模式映像 实现了数据的逻辑独立性 模式/内模式映像 实现了…

李宏毅流模型

李宏毅流模型 常见的3中生成模型,Flow-base Model是第四种生成模型 2. normal distribution&#xff1a;正态分布 max object function:最大目标函数 dimention:维度 Inverse function&#xff1a;反函数 如果两个函数本身就互为反函数&#xff0c;那么这两个函数求解得到的两…

一、在没有Vuex如何解决组件间数据传递的问题

Vuex【state、mutations、actions、modules、getters】 一、在没有Vuex如何解决组件间数据传递的问题 举例&#xff1a;点击不同的选项卡来切换页面时 选项卡和页面属于不同的组件&#xff0c;他们都在同一个父组件之下。 选项卡和页面组件的数据都来源于父组件。在选项卡组…