python Django模板的使用方法(图文)

下面是“Python Django模板的使用方法(图文)”的完整攻略,包含两个示例说明:

1. 简介

Django模板是一种文本文件,它用于生成HTML和其他格式的文档。Django模板语言(DTL)是由Django框架提供的一种HTML syntax,它使我们可以根据需要构造HTML页面。

在Django中,我们可以使用Django模板系统来渲染HTML页面,使我们能够很方便地生成动态网页。

2. Django模板的使用

创建一个Django模板非常简单。Django要求我们把模板放置在一个templates文件夹中。下面是一个基本的Django模板示例,让我们来创建一个名为“index.html”的文件:

<!DOCTYPE html>
<html>
<head>
    <title>我的首页</title>
</head>
<body>
    <h1>欢迎来到我的网站</h1>
    <p>这是一个用Django框架和模板语言创建的网站</p>
</body>
</html>

接下来,让我们在Django中使用这个模板。首先,我们需要在视图函数中实例化模板,并将数据传递给模板。例如,下面的视图函数将数据传递给模板,并将模板渲染为HTML页面:

from django.shortcuts import render

def index(request):
    data = {'name': '小明', 'age': 20}
    return render(request, 'index.html', data)

在这个例子中,我们使用了render函数, 它的第一个参数是请求(request)对象,第二个参数是模板的名称以及路径,第三个参数是我们要向模板传递的数据字典。接下来,Django将自动查找模板,并使用传入的数据来渲染模板。

在模板中,我们可以用{{ }}来包含Python表达式(变量)。例如,我们可以通过下面的代码来输出我们在模板中传递的数据:

<!DOCTYPE html>
<html>
<head>
    <title>我的首页</title>
</head>
<body>
    <h1>欢迎来到{{name}}的网站</h1>
    <p>他今年{{age}}岁了</p>
</body>
</html>

在模板中我们也可以使用if和for这样的控制结构。下面是一个模板示例,它实现了循环和条件判断:

<!DOCTYPE html>
<html>
<head>
    <title>我的文章</title>
</head>
<body>
    <h1>我的文章列表</h1>
    <ul>
        {% for article in articles %}
            {% if article.published %}
                <li><a href="{{ article.url }}">{{ article.title }}</a></li>
            {% endif %}
        {% endfor %}
    </ul>
</body>
</html>

在这个模板中,我们使用了for循环和if语句来循环遍历文章列表,并判断文章是否已经发布。这里的“articles”是在视图函数中通过数据字典传递给模板的。

3. 示例

下面是两个使用Django模板的示例:

示例1: 显示商品列表

下面是一个视图函数,它读取商品列表,并将它们传递给模板。模板中使用了for循环来遍历商品列表,并使用if语句判断商品是否有折扣。

from django.shortcuts import render

def products(request):
    products = [
        {'name': '手机', 'price': 1800, 'discount': 10},
        {'name': '电视', 'price': 3000, 'discount': 20},
        {'name': '电脑', 'price': 5000}
    ]
    return render(request, 'products.html', {'products': products})

下面是一个使用Django模板的示例(products.html):

<!DOCTYPE html>
<html>
<head>
    <title>商品列表</title>
</head>
<body>
    <h1>商品列表</h1>
    <ul>
        {% for product in products %}
            <li>{{ product.name }} - {% if product.discount %}{{ product.price*(100-product.discount)/100 }}{% else %}{{ product.price }}{% endif %}</li>
        {% endfor %}
    </ul>
</body>
</html>

在这个模板中,我们使用了for循环遍历商品列表,并使用if语句判断商品是否有折扣。如果有,则计算出折扣后的价格,否则输出原价。

示例2:显示博客文章

下面是一个视图函数,它读取博客文章列表,并将它们传递给模板。模板使用了for循环来遍历博客文章,并使用if语句判断文章是否已发布。

from django.shortcuts import render
from .models import Article

def blog(request):
    articles = Article.objects.all()
    return render(request, 'blog.html', {'articles': articles})

下面是一个使用Django模板的示例(blog.html):

<!DOCTYPE html>
<html>
<head>
    <title>我的博客</title>
</head>
<body>
    <h1>我的博客</h1>
    <ul>
        {% for article in articles %}
            {% if article.published %}
                <li><a href="{{ article.url }}">{{ article.title }}</a></li>
            {% endif %}
        {% endfor %}
    </ul>
</body>
</html>

在这个模板中,我们使用了for循环来遍历文章列表,并使用if语句来判断文章是否已发布。只有已发布的文章才会被列出来,并且可以点击链接查看文章内容。

4. 总结

Django模板是一种强大的工具,它使得我们可以轻松地生成动态的HTML页面。无论是生成商城商品列表,还是生成博客文章,Django模板都可以轻松胜任。在实际开发中,我们可以使用Django模板来构建Web应用程序,为用户提供完美的视觉体验。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python Django模板的使用方法(图文) - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Django 生命周期

    Django 生命周期为: 用户请求发起对url的请求→ wsgiref模块→django中间件→django(视图url对应函数,模型数据库交互,html模版渲染)→django中间件 → wsgiref模块 →用户看到的页面。   from wsgiref.simple_server import make_server def RunServer(en…

    Django 2023年4月11日
    00
  • python+django+sql学生信息管理后台开发

    “Python+Django+SQL学生信息管理后台开发”是一项非常实用的项目,可以帮助学校、教育机构、学院等管理学生的个人信息和学习成绩。下面是完整攻略及示例说明: 1. 确定项目需求 在开始项目前,首先需要确定项目的需求,明确项目要解决的问题。例如,要开发一个学生信息管理后台,需要实现的功能包括: 学生信息的录入、修改和删除 学生信息的查询功能 学生成绩…

    Django 2023年5月16日
    00
  • Django中配置redis

    setting.py import redis REDIS_DB = redis.Redis(host=’127.0.0.1′,port=6379,db=1) #db = 默认为1 还可以这样的配置 # redis 的配置文件 CACHES = { “default”: { “BACKEND”: “django_redis.cache.RedisCache”…

    Django 2023年4月13日
    00
  • DRF (Django REST framework) 框架介绍(3)

    1. Request REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象。 REST framework 提供了Parser解析器,在接收到请求后会自动根据Content-Type指明的请求数据类型(如JSO…

    Django 2023年4月10日
    00
  • django框架中间件原理与用法详解

    让我来详细讲解一下“Django框架中间件原理与用法详解”的完整攻略,包含两条示例说明。 什么是中间件? 中间件是Django框架中一个非常重要的概念,它是处于Django请求-响应处理过程中的一层拦截器,可以在请求到达处理视图函数之前或到达响应之后,对请求和响应进行各种操作和处理。如图所示: 客户端请求 -> Django中间件拦截处理 -> …

    Django 2023年5月16日
    00
  • 第十四篇Django-model进阶(中介模型,查询优化,extra,整体插入)

    阅读目录(Content) 中介模型 查询优化 extra 整体插入 中介模型 但是,有时你可能需要关联数据到两个模型之间的关系上。 但是,有时你可能想知道更多成员关系的细节,比如成员是何时加入小组的。 对于上面的音乐小组的例子,代码如下: from django.db import models class Person(models.Model): na…

    Django 2023年4月16日
    00
  • Django是什么?能做什么?

    Django是一个开源的Python Web框架,它提供了一组强大的工具和库,使得开发Web应用程序变得更加容易和快速。 Django遵循MVC(Model-View-Controller)的设计模式,其核心思想是将应用程序的不同组件分离,从而使得应用程序更加可维护和可扩展。 Django具有以下特点: 完整的开发框架:Django提供了很多组件,如ORM、…

    2023年3月11日
    00
  • django教程如何自学

    当想要自学Django教程时,可以遵循以下步骤: 1. 学习前的准备 在开始学习Django之前,建议先掌握Python基础并了解Web开发的相关概念。以下是一些学习资源: Python 官方文档 Python 基础教程 Django 官方文档 Django 教程 2. 安装 Django 在开始学习Django之前,需要先安装Django。可以通过以下步骤…

    Django 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部