python的Web框架,Django模板标签及模板的继承
模板标签
在传递数据的时候,会有大量的数据展示在浏览器上,而数据会是动态变化的,在html的编写中,数据也是需要动态的,而不能是写死的,如果动态展示呢。
给定的例子数据
views传递数据给html
from django.shortcuts import render def index(request): students = [
{'id':12, 'name':'张三', 'age':19, 'sex':'男'}
{'id':22, 'name':'李思', 'age':19, 'sex':'女'}
{'id':25, 'name':'王五', 'age':19, 'sex':'男'}
{'id':43, 'name':'赵柳', 'age':19, 'sex':'女'}
{'id':88, 'name':'孙奇', 'age':19, 'sex':'男'}
] return render(request,'teacher/index.html',context={
'students':students,
})
for循环标签
<body>
<table>
<tr>
<th>序列</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</tr> <!--#for循环写在{% %} 内-->
{% for stu in students %}
<tr>
<!--#把循环迭代的数据,用可以取出值即可-->
<td>{{ stu.id}}</td>
<td>{{ stu.name }}</td>
<td>{{ stu.age }}</td>
<td>{{ stu.sex }}</td>
</tr>
<!--#结尾需要end-->
{% endfor %}
</table>
</body>
输出的结果为: css样式有过调整,请忽略样式
forloop:序号排列
<body>
<table>
<tr>
<th>从1开始的正向排序</th>
<th>从0开始的正向排序</th>
<th>以1结尾的倒序</th>
<th>以0结尾的倒序</th>
</tr>
{% for stu in students %}
<tr>
<!--序号排列各式样式-->
<td>{{ forloop.counter}}</td>
<td>{{ forloop.counter0 }}</td>
<td>{{ forloop.revcounter }}</td>
<td>{{ forloop.revcounter0 }}</td>
</tr>
{% endfor %}
</table>
</body>
输出的结果为:
if:if判断
<body>
<table>
<tr>
<th>从1开始的正向排序</th>
<th>从0开始的正向排序</th>
<th>以1结尾的倒序</th>
<th>以0结尾的倒序</th>
</tr>
{% for stu in students %} <!--if判断和for循环一样,也有结尾的endif,条件写在中间。-->
== 两头需要空格
<tr {% if stu.sex == '女' %}style="color:red"{% endif %}>
<td>{{ forloop.counter}}</td>
<td>{{ stu.name }}</td>
<td>{{ stu.age }}</td>
<td>{{ stu.sex }}</td>
</tr>
{% endfor %}
</table>
</body>
输出结果为:
简单获取url
views简单配置点击id所展示的页面
def st_id(request, pk):
return HttpResponse('学生ID为%s的详情页' % pk)
对序号设置点击的跳转url
<body>
<table>
<tr>
<th>从1开始的正向排序</th>
<th>从0开始的正向排序</th>
<th>以1结尾的倒序</th>
<th>以0结尾的倒序</th>
</tr>
{% for stu in students %}
<tr {% if stu.sex == '女' %}style="color:red"{% endif %}> <!--因为要点击url,所有把标签放在a标签内,在路径的配置上,写上路径然后把字典中的id做动态匹配就会得到需要的id。-->
<td><a href="/teacher/st_id/{{ stu.id }}">{{ forloop.counter}}</a></td>
<td>{{ stu.name }}</td>
<td>{{ stu.age }}</td>
<td>{{ stu.sex }}</td>
</tr>
{% endfor %}
</table>
</body>
输出结果:
点击序列为1的网址显示:
url标签:动态获取url,返回一个命名(views中path里面的name的值)了的URL的绝对路径
<body>
<table>
<tr>
<th>从1开始的正向排序</th>
<th>从0开始的正向排序</th>
<th>以1结尾的倒序</th>
<th>以0结尾的倒序</th>
</tr>
{% for stu in students %}
<tr {% if stu.sex == '女' %}style="color:red"{% endif %}> 通过url标签,动态生成对应的url网址,此处的'teacher:st_id'
**需要在views中配置其中的path的name,name和此处的value需要一一对应。**
<td><a href="{% url 'teacher:st_id' stu.id %}">{{ forloop.counter}}</a></td>
<td>{{ stu.name }}</td>
<td>{{ stu.age }}</td>
<td>{{ stu.sex }}</td>
</tr>
{% endfor %}
</table>
</body>
for in empty 判断空置渲染默认的
{% for i in stu%}
<!--#如果for循环的渲染失败,则渲染empty内的条件-->
{% empty %}
<!--渲染方法--> {% emdfor %}
with:类似于as
第一种写法:
{% with stu=students.2%}
stu就可以拿出来使用了
{% endwith %}
第二种写法
{% with test_name as tn %}
1111{{ tn }}
2222{{ tn }}
{% endwith %}
autoescape 转义开关 同过滤器的safe
{% autoescape off %}
{{ html }}
{% endautoescape %}
模板的引入
include 模板的引入,把写好的html模板添加到我们需要的html中,在html代码中添加
<div>
{% include 'teacher/ad.html' %}
</div>
输出结果
模板的继承
extends继承标签:extends代买写在html的最上面,首行,在此行下面的代码无效。
被引入的内容写在block中
<!--在html中继承模板文件-->
{% extends 'teacher/base.html'%}
block自定义标签:在模板html中挖坑
base模板文件.html
默认写css的坑
{% block link%}
{% endblock %} <!--默认写body的地方-->
{% block conrent(自定义名称) %} <!--如果被引入的html,如果没有写这个标签,就默认展示模板内的数据,如果有,就展示当前html的内容数据。-->
<p>模板内的数据</p>
{% endblock %} <!--默认底部定义写js的坑-->
{% block domready %}
{% endblock %}
被引入的html文件,css,js,html代码都是此种方法写入。对应上面的模板
{% extends 'teacher/base.html'%}
{% load static %} {% block link %}
带入css代码
<link rel="stylesheet" href="{% static 'teacher/css/login.css' %}">
{% endblock %} {% block conrent %}
<p>我是被展示的数据</p>
{% endblock %} {% block domready %}
<script>JS代码</script>
{% endblock %}
总结:
模板标签语法:
{% tag %} {% endtag %} 需要结束收尾的 {% tag 参数 参数 %} 例如 url
python的Web框架,Django模板标签及模板的继承的更多相关文章
- Python之Web框架Django
Python之Web框架: Django 一. Django Django是一个卓越的新一代Web框架 Django的处理流程 1. 下载地址 Python 下载地址:https://www.pyt ...
- Python3.5学习十八 Python之Web框架 Django
Python之Web框架: 本质:Socket 引用wsgiref创建web框架 根据web框架创建过程优化所得: 分目录管理 模板单独目录 执行不同函数单独存入一个方法py文件 Web框架的两种形式 ...
- Python 17 web框架&Django
本节内容 1.html里面的正则表达式 2.web样式简介 3.Django创建工程 Html里的正则表达式 test 用来判断字符串是否符合规定的正则 rep.test('....') ...
- python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...
- Python编程Web框架 :Django 从入门到精通
Django是一个高级别的Python Web框架,它鼓励快速开发和干净实用的设计. 现在我们开始学习它. Django学习之 第一章:Django介绍 Django学习之 第二章:Django快速上 ...
- python的web框架---Django项目
Django项目之会议室预预订: 界面效果展示: 1.创建超级管理员,实现预定界面功能 2.预定界面: (一)基于pymysql设计数据表结构,理清前后端与用户交互逻辑.(用户表,会议室表,预定内容存 ...
- 在python的web框架Django中使用SQL Server
在pycharm中安装 安装pyodbc和Django——pyodbc是一个用python写的ODBC引擎 安装Django-pyodbc-azure 在后方网址中查 ...
- python运维开发(十七)----jQuery续(示例)web框架django
内容目录: jQuery示例 前端插件 web框架 Django框架 jQuery示例 dom事件绑定,dom绑定在form表单提交按钮地方都会绑定一个onclick事件,所有查看网站的人都能看到代码 ...
- 利用python web框架django实现py-faster-rcnn demo实例
操作系统.编程环境及其他: window7 cpu python2.7 pycharm5.0 django1.8x 说明:本blog是上一篇blog(http://www.cnblogs.co ...
- Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块
Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 ...
随机推荐
- Scala_对象
对象 单例对象 Scala并没有提供Java那样的静态方法或静态字段,但是,可以采用 object关键字实现单例对象,具备和Java静态方法同样的功能. 可以看出,单例对象的定义和类的定义很相似,明显 ...
- Mining Twitter Data with Python
目录 1.Collecting data 1.1 Register Your App 1.2 Accessing the Data 1.3 Streaming 2.Text Pre-processin ...
- SRM470
250pt 给定1个最多16颜色的字符串(颜色可以重复),甲在最左边,乙在最右边.轮流操作,每次可以消除一种颜色. 给定一个k,问谁能最先消除完到位置k之间的障碍. 思路: 每个人肯定优先取对方没有的 ...
- 团队作业第5周 - 测试与发布(Alpha版本)- 天冷记得穿秋裤队
团队作业第5周 - 测试与发布(Alpha版本)- 天冷记得穿秋裤队 Alpha版本测试报告 在测试过程中总共发现了多少Bug?每个类别的Bug分别为多少个? 前后端至今一共发现有10个bug,修复的 ...
- 2.select查询用法
1.定义查询接口 UserMapper.java package tk.mybatis.simple.mapper; import tk.mybatis.simple.model.SysRole; i ...
- Android-Recyclerview-GridView&瀑布流等效果
由于Recyclerview是在 android.support.v7.widget.包 RecyclerView,所以需要导Recycler库: 导Recycler库: 选择项目,右键--> ...
- Spring下配置几种常用连接池
1.连接池概述 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正是 ...
- mysql rand
在where语句中,rand有时候会出现多条记录
- [C#]剖析异步编程语法糖: async和await
一.难以被接受的async 自从C#5.0,语法糖大家庭又加入了两位新成员: async和await. 然而从我知道这两个家伙之后的很长一段时间,我甚至都没搞明白应该怎么使用它们,这种全新的异步编程模 ...
- 记Asp.Net Core Swagger 使用 并带域接口处理
引用作者原话:Asp.Net的WebApi中使用Swagger作为说明和测试的页面是非常不错的,比起WebApiTestClient来至少在界面上的很大的提升.但是使用Swagger时如果只是一般的控 ...