第三百一十节,Django框架,模板语言

模板语言就是可以将动态数据在html模板渲染的语言

一、接收值渲染

locals()函数,写在请求响应render()函数里,可以将逻辑处理函数里的变量传到html用模板语言渲染

{{...}}接收一个变量或者值进行渲染

逻辑处理

from django.shortcuts import render
from app1.models import *    #导入数据库操作模块#逻辑处理模块
def special(request):a = '叫卖录音网'return render(request, 'index.html', locals())  # 打开页面

html

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

二、接收值,运行代码块

for循环

{% for item in item_list %}

 <a>{{ item }}</a>

  forloop.counter  计数器,记录循环次数
  forloop.first      判断是否是循环第一次,返回布尔值    
  forloop.last    判断是否是循环最后一次,返回布尔值 

 {% endfor %}

逻辑处理

from django.shortcuts import render
from app1.models import *    #导入数据库操作模块#逻辑处理模块
def special(request):a = ['首页','产品展示','关于我们']return render(request, 'index.html', locals())  # 打开页面

html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<ul>{% for i in a %}<li>{{ i }}</li>{{ forloop.counter }}{{ forloop.first }}{{ forloop.last }}{% endfor %}
</ul>
</body>
</html>

if判断

{% if ordered_warranty %}  

{% else %}

{% endif %}

逻辑处理

from django.shortcuts import render
from app1.models import *    #导入数据库操作模块#逻辑处理模块
def special(request):a = ['首页','产品展示','关于我们']return render(request, 'index.html', locals())  # 打开页面

html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<ul>{% for i in a %}{% if i == '首页' %}<li style="color: #ee1215">{{ i }}</li>{% elif i == '产品展示' %}<li style="color: #1b47ee">{{ i }}</li>{% else %}<li>{{ i }}</li>{% endif %}{% endfor %}
</ul>
</body>
</html>

三、母板-子板-母板继承

母板继承就是访问的页面继承一个母板,将访问页面的内容引入到母板里指定的地方,组合成一个新页面返回给浏览器

一般母板里都是写的一个网页里不变的地方,也就是通用的地方,被继承页(访问页)都是每个页面不同的地方,也就是将页面不同的地方引入到母板组合成一个新页面返回浏览器

母板里一般都是网页的、头部、底部、头部底部css、头部底部js

被继承页(访问页)里一般都是新内容,新内容的css和js

母板:{% block title %} {% endblock %} 设置可调用区块或,有参设置可调用区块,无参调用区块
子板:{% extends "base.html" %} 子板继承母板
   {% block title %} {% endblock %} 设置可调用区块或,有参设置可调用区块,无参调用区块

逻辑处理 

from django.shortcuts import render
from app1.models import *    #导入数据库操作模块#逻辑处理模块
def special(request):return render(request, 'index.html', locals())  # 打开页面

母板

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" type="text/css" href="/static/css/tou.css">{% block css %}{% endblock %}   #调用子板的css样式
</head>
<body><div id="tou">头部</div>{% block nei_rong %}{% endblock %}  #调用子板的内容区块<div id="wei">尾部</div>
</body>
</html>

子板(访问页)

{% extends "tou.html" %}  #继承母板{% block css %}       #设置母版调用css样式区块<link rel="stylesheet" type="text/css" href="/static/css/index.css">
{% endblock %}{% block nei_rong %}    #设置母版调用字板内容区块<div id="neir">内容</div>
{% endblock %}

四、帮助方法:
{{ item.event_start|date:"Y-m-d H:i:s"}}    格式化时间
{{ bio|truncatewords:"30" }}            只显示指定字数
{{ my_list|first|upper }}                首字母大写
{{ name|lower }}                       首字母小写

五、自定义html模板可调用函数模块

a、在app应用中创建templatetags目录

b、在目录中创建任意 .py 文件,如:xx.py

在py文件里设置html可调用函数,注意py文件里有几个注意点如下:

#!/usr/bin/env python
# coding:utf-8
from django import template              #必须导入这个模块
from django.utils.safestring import mark_safe      #必须导入这个模块register = template.Library()       #固定格式必须设置这个变量  @register.simple_tag                  #自定义函数必须用上这个装饰器,html页面才可以调用
def my_simple_time(v1, v2, v3):  #自定义函数return v1 + v2 + v3@register.simple_tag
def my_input(id, arg):result = "<input type='text' id='%s' class='%s' />" % (id, arg,)return mark_safe(result)

c、在使用自定义函数的html文件中导入自定义函数模块 xx.py 文件名
{% load 自定义函数模块名称 %}

d、html页面使用
{% 函数名称 参数 参数 参数 %}

{% load mbanyuyan %}  #导入自定义函数模块
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>{% my_simple_time 1 2 3 %}   #传参并且执行自定义函数</body>
</html>

注意:使用自定义html函数,必须在全局配置文件settings.py里的INSTALLED_APPS注册了app应用

INSTALLED_APPS = ('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app01',
)

 

转载于:https://www.cnblogs.com/adc8868/p/7173139.html

第三百一十节,Django框架,模板语言相关推荐

  1. python语言的格式框架_django框架模板语言使用方法详解

    本文实例讲述了django框架模板语言使用方法.分享给大家供大家参考,具体如下: 模板功能 作用:生成html界面内容,模版致力于界面如何显示,而不是程序逻辑.模板不仅仅是一个html文件,还包括了页 ...

  2. 第三百一十九节,Django框架,文件上传

    第三百一十九节,Django框架,文件上传 1.自定义上传[推荐] 请求对象.FILES.get()获取上传文件的对象 上传对象.name获取上传文件名称 上传对象.chunks()获取上传数据包,字 ...

  3. 天龙日梅兰竹菊_第三百一十五章 梅兰竹菊

    第三百一十五章梅兰竹菊 自打应下无崖子的承诺以来,楚柏便是一直马不停蹄的赶路! 赶到西夏,在见了李秋水之后,又被李秋水拉着前往[缥缈峰],这一路,风尘仆仆的楚柏,总算是难得空闲下来了: 不得不说! [ ...

  4. Python全栈(十)Django框架之6.ORM模型基本使用

    文章目录 一.ORM创建模型和映射数据库 1.创建模型 2.数据库映射 二.ORM模型数据操作 1.添加数据 2.查询数据 3.删除数据 4.更新数据 三.ORM实现图书管理系统 一.ORM创建模型和 ...

  5. Python全栈(十)Django框架之10.ORM模型对象和QuerySet方法

    文章目录 一.objects对象源码解读 二.QuerySet方法 1.exclude方法 2.order_by方法 3.values方法 4.values_list方法 5.create方法 6.g ...

  6. Python全栈(十)Django框架之9.聚合函数和表达式

    文章目录 一.聚合函数 1.Avg函数 2.聚合函数实现链式调用 3.aggregate和annotate的区别 4.Count函数 5.Max和Min函数 6.Sum函数 二.F表达式和Q表达式 1 ...

  7. python框架django文档_Django基础——Django框架介绍及模板语言

    Django框架,我们只需要关心二点: 1.根据用户访问不同的路径执行不同的函数 2.从HTML读取出内容,并且完成字符串的替换 而socket通信不需要我们自己写: 新建Django项目 命令行创建 ...

  8. 自学Python第二十二天- Django框架(一)创建项目、APP、快速上手、请求和响应流程、模板、数据库操作

    Django 框架是一个基于 python 的重量级的 web 开发框架,现今很多大公司大项目都是使用 Django 框架.采用了 MVC(model view controller) 的框架模式,p ...

  9. Django框架整理

    Django框架 Django是一个功能强大的web框架. 博客中缺少知识流程解释图,后期我会一一补充回来,因为博客园插图片比较麻烦,请谅解. 前言:框架模式简介 1.MVC和MTV框架模式:分层级进 ...

最新文章

  1. 别再叫我 Sql boy!
  2. JZOJ 5609. 【NOI2018模拟3.28】Tree BZOJ 4919: [Lydsy1706月赛]大根堆
  3. 我的Go语言学习之旅二:入门初体验 Hello World
  4. 六年级下册百分数计算题_小学六年级数学期末考,题量较大,出题全面、灵活...
  5. 基于django的视频点播网站开发-step11-后台用户管理功能...
  6. curl shell 失败_linux – curl命令不在bash中通过shell脚本执行
  7. Kibana :报错 Status changed from yellow to red - This version of Kibana requires Elasticsearch v6.8.0
  8. sessionStorage跨标签取值
  9. docker 启动相关 命令
  10. su必备插件_21款SU常用插件集合
  11. 用python画爱心动图_python 动态绘制爱心的示例
  12. react实现上传文件进度条功能_js上传文件(可自定义进度条)
  13. 一本书让你知道互联网思维 个人总结
  14. SDN 交换机迁移1
  15. 如何在计算机桌面恢复我的电脑,桌面上我的电脑图标不见了怎么恢复?桌面计算机图标不见了的3个解决方法...
  16. 【LeetCode每日一题】——1042.不邻接植花
  17. 电脑计算机提示msvcr100.dll丢失如何修复,msvcr100.dll丢失的解决方法
  18. 布尔教育mysql优化_布尔教育燕十八mysql优化视频课件源码分享
  19. 某行“软件最佳实践与沙盘演练”企业内训开始!
  20. 手把手教你做一块电路板,从设计到制作

热门文章

  1. python的垃圾处理机制_Python语法入门之垃圾回收机制
  2. a站手机访问电脑版_公司电脑一键变网盘,支持手机、家里电脑远程访问
  3. 从html导出带样式的excel,关于将HTML导出到Excel中时样式的问题
  4. 调制优缺点_钓鱼,何时用搓饵、何时用拉饵?及对应的优缺点分析
  5. 按键精灵 getcursorpos没有用_给你们想要的一键输出II按键精灵脚本开发教程
  6. python document_python 处理document文档 保留原样式
  7. 【干货】在Redis中设置了过期时间的Key怎么办?
  8. 从零开始入门 K8s | 可观测性:你的应用健康吗?
  9. 湖北经济学院法商学院计算机分数线,湖北经济学院法商学院
  10. mysql数据库项目例子_很实用的MySql数据库语句(项目中的例子)