在setting.py中,设置模板存放位置

  在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}}</h1>
  
  <h2>{{dongkk2}}</h2>
  
  APP控制器(views)设置匹配值
  
  from django.shortcuts import render #导入
  
  return render(requestx, "loginx.html",{"dongkk1":"替换值1","dongkk2":"替换值2"})  # 返回文件
  
  列表:
  
  return render(requestx, "loginx.html",{"listxto":["x1","x2","x3"]})  # 返回文件
  
  取值
  
  {{listxto.0}}
  
  字典:
  
  return render(requestx, "loginx.html",{"dictxto":{"d1":"dong11","d2":"dong22"}})  # 返回文件
  
  取值
  
  {{dictxto.d2}}
  
  条件判断
  
  复制代码
  
  {% if dongx > 19 %}
  
  <img src="static/img/an.png">
  
  {% else %}
  
  <img src="static/img/kkz.png">
  
  {% endif %}
  
  复制代码
  
  循环替换:
  
  类似于PHP的volist功能,实现在视图文件中进行列表的循环遍历,最常会使用其进行数据库表格的遍历显示。
  
  APP控制器(views)设置匹配值
  
  复制代码
  
  1 from django.shortcuts import render #导入
  
  2 listx = []
  
  3 listx.append({"id": 1, "user": "dong1", "name": "dongxiaodong1"})
  
  4 listx.append({"id": 2, "user": "dong2", "name": "dongxiaodong2"})
  
  5 listx.append({"id": 3, "user": "dong3", "name": "dongxiaodong3"})
  
  6 return render(requestx, "loginx.html",{"listxto":listx})  # 返回文件
  
  复制代码
  
  模板(templates)的html文件中,注册变量
  
  复制代码
  
  1 <table border="1">
  
  2            <!--表格头-->
  
  3            <thead>
  
  4               <tr>
  
  5                 <th>id</th>
  
  6                 <th>用户名</th>
  
  7                 <th>昵称</th>
  
  8               </tr>
  
  9             </thead>
  
  10             <!--表格内容-->
  
  11             <tbody>
  
  12                <!--循环遍历-->
  
  13                {% for rowx in listxto %}
  
  14                <tr>
  
  15                  <td>{{rowx.id}}</td>
  
  16                  <td>{{rowx.user}}</td>
  
  17                  <td>{{rowx.name}}</td>
  
  18                </tr>
  
  19               {% endfor %}
  
  20            </tbody>
  
  21 </table>
  
  复制代码
  
  循环特殊匹配值
  
  为循环添加升序序号,起始为1:【<td>{{forloop.counter}}</td>】
  
  为循环添加升序序号,起始为0:【<td>{{forloop.counter0}}</td>】
  
  为循环添加倒序序号,起始为1:【<td>{{forloop. revcounter}}</td>】
  
  为循环添加倒序序号,起始为0:【<www.shengchangyule.net>{{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下:
  
  复制代码
  
  1 from django import template
  
  2 register = template.Library(www.365soke.com)
  
  3 #*****方式一****************************
  
  4 #不带参数
  
  5 @register.simple_tag
  
  6 def dongstr():
  
  7     return "东小东小"
  
  8 #带参数,参数可有任意个
  
  9 @register.simple_tag
  
  10 def dongcom(x,y):
  
  11     return x+y
  
  12 #*****方式二**************************
  
  13 #最多带两个参数
  
  14 @register.filter
  
  15 def dongstr222(x,y):
  
  16     return x+"--"+y
  
  17 #带一个参数
  
  18 @register.filter
  
  19 def dongstr333(www.yongxin7.cn/):
  
  20     return str(www.shengchanyule.com).upper()
  
  复制代码
  
  在视图模板中使用
  
  复制代码
  
  {% load Dongtemp %}
  
  <div>{% dongstr %}</div> <!--  东小东小  -->
  
  <div>{% dongcom 10 30 %}</div><!--  40  -->
  
  <div>{{"参数1"|dongstr222:"参数2"}}</div><!-- 参数1--参数2   -->
  
  <div>{{"xYz"|dongstr333}}</div><!--  XYZ  -->

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提示 CTRL Q: 在参数列表位置,显示可以输入的所有参数。 CTRL Q: 查看选方法的文档字符串 阅读 CTRL -: 折叠当前代码 CTRL +: 展开当前代码 CTRL SHIFT -: 折叠所有代码 CTRL SHIFT +: 展开所有代码 CTRL SHIFT F7:  将当前单词在整个文件高亮,F3移动到下一个,ESC取消高亮。 CTRL F11 | F11: 设置书签. SHIFT F11: 显示所有书签。 CTRL F12: 当一个文件方法太多,要快速跳到某个方法时,可以用此快捷键打开LIST, 除了用上下箭选择外,还可以输入字母。 移动 ALT F7: 查找哪些地方使用了选的方法。 ALT UP: 移到上一个方法 ALT DOWN: 移到下一个方法 CTRL B | CTRL 单击: 转到方法定义处 CTRL SHIFT UP: 将当前行上移一行 CTRL SHIFT UP: 将当前行下移一行 SHIFT ENTER: 在行间执行时,智能跳到下一行。 注释 CTRL /: 注释、取消注释行 选择 ALT 左键: 列模式选择 CTRL W: 选当前单词,继续按,选它所属的行/IF/方法. 编辑 CTRL D: 未选时,复制当前行到下一行,选时复制粘贴选部分。 CTRL J: 输入模板 SHIFT F6: 更改变量/方法名字 删除 CTRY Y: 删除当前行 调试 CTRL F8: 设置/取消断点 其它 CTRL E: 最近访问的文件列表 ESC: 焦点从其它窗口到编辑窗口 SHIFT ESC:  隐藏当前窗口,焦点到编辑窗口 F12: 焦点从编辑窗口到上一个使用窗口 编辑器右键,local history, show history: 显示本地修改记录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值