在setting.py中,设置模板存放位置
在APP中vIEw的使用
from django.shortcuts import render #导入def homex(requestx): return render(requestx,"loginx.HTML") #返回文件
页面模板
实现页面的布局重复利用,建立模板中内部的名字如果在匹配中没有进行值替换,则显示原数据
建立页面模板
在需要替换值的地方写入如下即可,其中dongdata1为内部名字,模板文件名任意,如tempx.HTML
{% block dongdata1 %} <span>555</span> {% endblock %}{% block dongdata2 %} <spna>666</spna>{% endblock %}
使用页面模板
在使用模板的HTML文件中进行值替换
<!--继承模板的文件名,只能有一个 -->{% extends "tempx.HTML" %}<!--替换模板的对应值-->{% block dongdata1 %}<div>222222222222222222</div>{% endblock %}{% block dongdata3 %}<h1>东小东</h1>{% endblock %}
页面模板2
引入HTML片段,在指定的地方引入,一个文件中可以多出引用
{% include "tempx2.HTML" %}值匹配
简单值替换:
传递单独变量,也可以是字典和列表
模板(templates)的HTML文件中,注册变量
<h1>{{dongkk1}}</>h2>{{dongkk2}}>
APP控制器(vIEws)设置匹配值
from django.shortcuts import render #导入return render(requestx,"loginx.HTML",{dongkk1":替换值1dongkk2替换值2"}) 返回文件
列表:
Listxto":[x1x2x3"]}) 返回文件
取值
{{Listxto.0}}
字典:
dictxto":{d1dong11d2dong22"}}) 返回文件
取值
{{dictxto.d2}}
条件判断
{% if dongx > 19 %} <img src=static/img/an.png">{% else %} <img src=static/img/kkz.png{% endif %}
循环替换:
类似于PHP的voList功能,实现在视图文件中进行列表的循环遍历,最常会使用其进行数据库表格的遍历显示。
APP控制器(vIEws)设置匹配值
1 2 Listx = []3 Listx.append({ID": 1,1)">user": dong1namedongxiaodong1"})4 Listx.append({": 2,1)">dong2dongxiaodong25 Listx.append({": 3,1)">dong3dongxiaodong36 ":Listx}) 返回文件
模板(templates)的HTML文件中,注册变量
1 table border="1" 2 <!--表格头--> 3 thead 4 tr 5 th>ID 6 >用户名 7 >昵称 8 9 10 表格内容11 tbody12 循环遍历13 {% for rowx in Listxto %}14 15 td>{{rowx.ID}}16 >{{rowx.user}}17 >{{rowx.name}}18 19 {% endfor %}20 21 table>
循环特殊匹配值
为循环添加升序序号,起始为1:【<td>{{forloop.counter}}</td>】
为循环添加升序序号,起始为0:【<td>{{forloop.counter0}}</td>】
为循环添加倒序序号,起始为1:【<td>{{forloop. revcounter}}</td>】
为循环添加倒序序号,起始为0:【<td>{{forloop.revcounter0}}</td>】
查看是否是第一条循环,返回bool【{{forloop.first}}】
查看是否是最后一条循环,返回bool【{{forloop.last}}】匹配值修饰符:
是否支持HTML代码
值匹配时如果传递的值是HTML的代码,显示时会以原字符串显示,不会被浏览器解释,如果加上【|safe】则表示此值可以被浏览器解释
{{ dongname|safe}}
自定义修饰符:
在Django工程的setting.py的【INSTALLED_APPS = []】添加对应APP的名字【'dongapp2',】
在对应的APP下建立templateTags目录,并在目录下建立任意名字的Python文件,如Dongtemp.py
Dongtemp.py下:
from django import template 2 register = template.library() 3 *****方式一**************************** 4 不带参数 5 @register.simple_tag 6 def dongstr(): 7 return 东小东小" 8 带参数,参数可有任意个 9 10 dongcom(x,y):11 return x+y12 *****方式二**************************最多带两个参数14 @register.filter15 dongstr222(x,1)">16 return x+--"+17 带一个参数18 dongstr333(x):20 return str(x).upper()
在视图模板中使用
{% load Dongtemp %}<div>{% dongstr %}</div> <!-- 东小东小 --><div>{% dongcom 10 30 %}</div><!-- 40 --><div>{{"参数1"|dongstr222:"参数2"}}</div><!-- 参数1--参数2 --><div>{{"xYz"|dongstr333}}</div><!-- XYZ -->
总结 以上是内存溢出为你收集整理的Python后台开发Django( 模板 与 值匹配 )全部内容,希望文章能够帮你解决Python后台开发Django( 模板 与 值匹配 )所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)