第三百一十节,Django框架,模板语言
第三百一十节,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框架,模板语言相关推荐
- python语言的格式框架_django框架模板语言使用方法详解
本文实例讲述了django框架模板语言使用方法.分享给大家供大家参考,具体如下: 模板功能 作用:生成html界面内容,模版致力于界面如何显示,而不是程序逻辑.模板不仅仅是一个html文件,还包括了页 ...
- 第三百一十九节,Django框架,文件上传
第三百一十九节,Django框架,文件上传 1.自定义上传[推荐] 请求对象.FILES.get()获取上传文件的对象 上传对象.name获取上传文件名称 上传对象.chunks()获取上传数据包,字 ...
- 天龙日梅兰竹菊_第三百一十五章 梅兰竹菊
第三百一十五章梅兰竹菊 自打应下无崖子的承诺以来,楚柏便是一直马不停蹄的赶路! 赶到西夏,在见了李秋水之后,又被李秋水拉着前往[缥缈峰],这一路,风尘仆仆的楚柏,总算是难得空闲下来了: 不得不说! [ ...
- Python全栈(十)Django框架之6.ORM模型基本使用
文章目录 一.ORM创建模型和映射数据库 1.创建模型 2.数据库映射 二.ORM模型数据操作 1.添加数据 2.查询数据 3.删除数据 4.更新数据 三.ORM实现图书管理系统 一.ORM创建模型和 ...
- Python全栈(十)Django框架之10.ORM模型对象和QuerySet方法
文章目录 一.objects对象源码解读 二.QuerySet方法 1.exclude方法 2.order_by方法 3.values方法 4.values_list方法 5.create方法 6.g ...
- Python全栈(十)Django框架之9.聚合函数和表达式
文章目录 一.聚合函数 1.Avg函数 2.聚合函数实现链式调用 3.aggregate和annotate的区别 4.Count函数 5.Max和Min函数 6.Sum函数 二.F表达式和Q表达式 1 ...
- python框架django文档_Django基础——Django框架介绍及模板语言
Django框架,我们只需要关心二点: 1.根据用户访问不同的路径执行不同的函数 2.从HTML读取出内容,并且完成字符串的替换 而socket通信不需要我们自己写: 新建Django项目 命令行创建 ...
- 自学Python第二十二天- Django框架(一)创建项目、APP、快速上手、请求和响应流程、模板、数据库操作
Django 框架是一个基于 python 的重量级的 web 开发框架,现今很多大公司大项目都是使用 Django 框架.采用了 MVC(model view controller) 的框架模式,p ...
- Django框架整理
Django框架 Django是一个功能强大的web框架. 博客中缺少知识流程解释图,后期我会一一补充回来,因为博客园插图片比较麻烦,请谅解. 前言:框架模式简介 1.MVC和MTV框架模式:分层级进 ...
最新文章
- 别再叫我 Sql boy!
- JZOJ 5609. 【NOI2018模拟3.28】Tree BZOJ 4919: [Lydsy1706月赛]大根堆
- 我的Go语言学习之旅二:入门初体验 Hello World
- 六年级下册百分数计算题_小学六年级数学期末考,题量较大,出题全面、灵活...
- 基于django的视频点播网站开发-step11-后台用户管理功能...
- curl shell 失败_linux – curl命令不在bash中通过shell脚本执行
- Kibana :报错 Status changed from yellow to red - This version of Kibana requires Elasticsearch v6.8.0
- sessionStorage跨标签取值
- docker 启动相关 命令
- su必备插件_21款SU常用插件集合
- 用python画爱心动图_python 动态绘制爱心的示例
- react实现上传文件进度条功能_js上传文件(可自定义进度条)
- 一本书让你知道互联网思维 个人总结
- SDN 交换机迁移1
- 如何在计算机桌面恢复我的电脑,桌面上我的电脑图标不见了怎么恢复?桌面计算机图标不见了的3个解决方法...
- 【LeetCode每日一题】——1042.不邻接植花
- 电脑计算机提示msvcr100.dll丢失如何修复,msvcr100.dll丢失的解决方法
- 布尔教育mysql优化_布尔教育燕十八mysql优化视频课件源码分享
- 某行“软件最佳实践与沙盘演练”企业内训开始!
- 手把手教你做一块电路板,从设计到制作
热门文章
- python的垃圾处理机制_Python语法入门之垃圾回收机制
- a站手机访问电脑版_公司电脑一键变网盘,支持手机、家里电脑远程访问
- 从html导出带样式的excel,关于将HTML导出到Excel中时样式的问题
- 调制优缺点_钓鱼,何时用搓饵、何时用拉饵?及对应的优缺点分析
- 按键精灵 getcursorpos没有用_给你们想要的一键输出II按键精灵脚本开发教程
- python document_python 处理document文档 保留原样式
- 【干货】在Redis中设置了过期时间的Key怎么办?
- 从零开始入门 K8s | 可观测性:你的应用健康吗?
- 湖北经济学院法商学院计算机分数线,湖北经济学院法商学院
- mysql数据库项目例子_很实用的MySql数据库语句(项目中的例子)