开发templates,即html文件(django基础三)

templates介绍

1.templates翻译为模板
2.templates即是html文件,它使用了Django模板语言
3.它也可使用第三方模块如jinja2

概述

  1. Django Template负责整个表现逻辑,通过内置的模板语言结合HTML文件,为用户呈现Web内容;
  2. Template模板系统是一个独立的语言库,所以除了与HTML文件结合,也可以与其他文本格式的文档结合,甚至可以独立运行;
  3. Template模板系统通过模板标签、过滤器、流程控制语句、模板继承等方式,实现了Web页面的动态展现。

在这里插入图片描述

详解Django模板语言

逻辑标签

{ if }{endif}进行逻辑判断

{ if request.user }
	<div class='top1'></div>
{ elif }
	<div class='top2'></div>
{ endif }
  • 通过 {% if %} 判断是否为真,如果是为真,执行第一个div代码块;
  • 如果为假,执行第二个div代码快,最终通过 {% endif %} 结束判断语句;

{ for } 循环

{ for user in all_user }
	<p>all_user.user</p>
{endfor}

说明:

  • Django模板文件除了if和for两种逻辑语句之外,不支持其他复杂的语句,更不支持直接调用Python语言;
  • 这与Django的设计理念有关,Django里面限制了我们不能在模板层过多地使用Python代码以及逻辑,因为如果过多的在模板层使用逻辑,这将会在后期维护的时候很困难
内置的标签

在这里插入图片描述

变量

在这里插入图片描述

模板变量

{{ }}用于存储模板变量,变量内容可以直接从views函数获取,也可以通过if/for标签来获取
{% url ' url_name ' %}跳转到特定url映射的模板变量,变量内容由url_name决定

<a href='{% url 'index'%}>首页</a>
<form method="post" action="{% url 'delete' %}">
过滤器(写在html文件中的,是django的模板语言)
自定义过滤器

简介:过滤器即在变量后面加上管道符和过滤关键词,可以对模板变量的内容做进一步的操作。

创建方法:

  • 在应用下创建template文件夹
  • 在文件夹下创建myfilter.py
    例子:
from django import template
register = template.Library()  # 定义过滤器
@register.filter
def test_filter(value, args):
    return value + args

{% load myfilter %}
{{data | test_filter: 3}}
常用内置过滤器

在这里插入图片描述在这里插入图片描述

配置一个html页面显示的步骤

1.配置url
2.配置对应的views视图逻辑
3.拆分静态文件(static,css,js)到static,html放入到template之下
1.可以放到对应的app下面
2.也可以放入到全局的template和目录之下
4.配置全局的static文件访问路径的配置STATICFILE_DIRS(自己加上的参数)

templates使用

1.在app目录下创建一个templates文件夹,然后在templates文件夹下创建另一个文件夹(名字为app名)
2.在该文件夹下创建一个Html文件,编辑HTML文件
在这里插入图片描述
4。编辑views.py,这里需要使用render,render翻译为渲染
在这里插入图片描述
render()函数介绍:

  1. 第一个参数为请求request,是必须填的,request代表了HTTP的一个请求对象
  2. 第二个参数为我们的HTML文件的路径,也是必填
  3. 第三个参数为我们后台传到前端的数据,是选填,这是一个支持字典类型的参数,该字典是后台传递到前端(模板)的参数,键为参数名,模板(HTML文件)中使用{{ 参数名 }}直接调用

5.打开浏览器输入对应网址就可以访问,如下图,可以显示HTML页面
在这里插入图片描述因为我后面没有在templates目录下使用那个app文件夹,所以网址后面不用加/app

templates查找文件的路径

1.Django按照INSTALLED_APPS的添加顺序查找templates
2.templates文件夹下的同名HTML文件会冲突
说明
这就是上面创建templates目录之后还要在templates目录下创建app目录的原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值