下面是“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技术站