详解Django模板系统

yizhihongxing

Django模板系统是Django框架的一部分,被用于生成HTML页面,并支持动态生成内容。Django模板系统提供了许多内置标签和过滤器,以便于开发者对页面进行更方便的操作和控制。下面我们来了解一下Django模板系统的详细。

显示变量

在Django模板系统中,通过{{}}来显示变量。

如下所示:

<h1>Hello, {{ name }}</h1>

其中,name是要显示的变量。

在条件语句中使用if和else

可以使用if和else来控制页面的显示,通过条件语句来判断应该显示哪些内容。

如下所示:

{% if is_logged_in %}
    <h1>Welcome back, {{ username }}</h1>
{% else %}
    <h1>Please log in</h1>
{% endif %}

其中,is_logged_in是一个布尔型变量,用来表示当前用户是否已经登录。如果is_logged_in为真,则显示“Welcome back, username”;否则显示“Please log in”。

在循环语句中使用for

可以使用for循环来对一些数据进行迭代输出。

如下所示:

<ul>
{% for item in items %}
    <li>{{ item }}</li>
{% endfor %}
</ul>

其中,items是一个列表变量,包含了需要迭代输出的数据。

使用过滤器

过滤器用来对变量进行处理,如增加输出的格式和内容。

如下所示:

<h1>Hello, {{ name|title }}</h1>

其中,title是一个过滤器,用来将变量的每个单词首字母大写。

继承模板

可以使用继承机制,让一个模板继承另一个模板的一些内容。

如下所示:

{% extends "base.html" %}

{% block content %}
    <h1>Hello, {{ name }}</h1>
{% endblock %}

其中,{% extends "base.html" %}语句表示这个模板将会继承base.html模板的一些内容。{% block content %}和{% endblock %}语句表示这个模板所定义的块,会替换掉base.html模板中相应的块。

模板中的注释

可以在模板中使用注释来对模板的一些部分进行注释。

如下所示:

{% comment %}
    这是一个注释
{% endcomment %}

其中,{% comment %}和{% endcomment %}语句用来定义注释的开始和结束,注释内容不会被显示在网页中。

在Django模板系统中,还有很多其它标签和过滤器,这里不一一赘述,可以在需要的时候查阅文档。

下面给出一个完整的示例:

# views.py

from django.shortcuts import render

def hello(request):
    name = "World"
    items = ["apple", "banana", "orange"]
    return render(request, "hello.html", {"name": name, "items": items})
<!-- hello.html -->

<!DOCTYPE html>
<html>
<head>
    <title>Hello</title>
</head>
<body>
    {% if name %}
        <h1>Hello, {{ name|title }}!</h1>
    {% else %}
        <h1>Hello, anonymous!</h1>
    {% endif %}

    <ul>
    {% for item in items %}
        <li>{{ item }}</li>
    {% endfor %}
    </ul>
</body>
</html>

在浏览器中输入http://127.0.0.1:8000/hello/,可以看到以下的输出:

Hello, World!

- apple
- banana
- orange

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Django模板系统 - Python技术站

(0)
上一篇 2023年3月13日
下一篇 2023年3月13日

相关文章

  • Django视图扩展类知识点详解

    首先我们来介绍一下Django中的视图扩展类。视图扩展类是一种Django中预定义的类,我们可以继承这些类,使用这些类中已经实现的方法,来达到一些常见的功能。 常见的几种视图扩展类包括:TemplateView(模板视图)、ListView(列表视图)、DetailView(详细视图)、FormView(表单视图)等等。 接下来我们通过2个实例来学习这些视图…

    Django 2023年5月16日
    00
  • 【服务后端】Django的多表数据查询

    有数据表class和ClassUserTemp表     需求是要筛选出某个用户lUser管理的班级下ClassUserTemp的所有数据。 Class表的Owner字段表示关联的管理员用户。 只需要使用__关联属性即可,条件路径就是 班级  –> 班级的管理员  –> 与用户比较 pUserClasses = ClassUserTemp.o…

    Django 2023年4月13日
    00
  • Django ORM查询之extra查询

    extra(select=None, where=None,params=None,tables=None, order_by=None, select_params=None) 有些情况下,Django的查询语法难以简单的表达复杂的 WHERE 子句,QuerySet生成的SQL从句中注入新子句。 参数之SELECT   The select 参数可以让你…

    Django 2023年4月13日
    00
  • ubuntu下Django的搭建

    工具:Window下的pycharm 、VirtualBox下的Ubuntu系统、非必需的Xshell(远程连接工具) 现在针对各种包或python版本不能共存或包不能很好下载的问题,开始流行使用虚拟环境来解决这个问题,所有第一步我们要在Ubuntu下新建一个虚拟环境,当然不新建虚拟环境也是可以的。 Linux下输入workon查看已有的虚拟环境,我的已有两…

    Django 2023年4月13日
    00
  • Django admin实现图书管理系统菜鸟级教程完整实例

    我会提供详细的攻略,包含两个示例说明。 示例一:安装Django 首先,我们需要安装Django。我们可以通过以下步骤来完成: 确定Python版本:Django要求Python 3.6及以上版本。可以通过运行以下命令确定Python版本: python -V 安装pip:pip是Python包管理器,我们可以使用pip来安装Django。在终端中运行以下命…

    Django 2023年5月16日
    00
  • django rest_framework中的APIView,ModelViewSet,认证,权限,频率,版本

    models.py from django.db import models class UserInfo(models.Model): name=models.CharField(max_length=32) pwd=models.CharField(max_length=32) type_choices=((1,”普通用户”),(2,”VIP”),(3,…

    Django 2023年4月11日
    00
  • Django密码管理

    密码管理通常不应被不必要地重新发明,Django提供一套安全灵活的工具来管理用户密码。如何存储密码,如何配置存储哈希以及一些使用哈希密码的实用程序。 也可看看 即使用户可能使用强密码,攻击者也可能能够窃听其连接。使用HTTPS避免通过纯HTTP连接发送密码(或任何其他敏感数据),因为它们很容易被密码嗅探。 Django如何存储密码 Django提供了一个灵活…

    Django 2023年4月12日
    00
  • django系列6–Ajax05 请求头ContentType, 使用Ajax上传文件

    ContentType指的是请求体的编码类型,常见的类型共有三种: 1.application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了。浏览器的原生 <form> 表单,如果不设置 enctype 属性,那么最终就会以 默认格式application/x-www-form-urlencoded 方…

    2023年4月9日
    00
合作推广
合作推广
分享本页
返回顶部