博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第三百一十节,Django框架,模板语言
阅读量:6713 次
发布时间:2019-06-25

本文共 3539 字,大约阅读时间需要 11 分钟。

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

 

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

 

一、接收值渲染

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

{

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

逻辑处理

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

html

    
Title

{
{ a }}

 

二、接收值,运行代码块

for循环

{% for item in item_list %}

 <a>{

{ item }}</a>

  forloop.counter  计数器,记录循环次数

  forloop.first      判断是否是循环第一次,返回布尔值    
  forloop.last    判断是否是循环最后一次,返回布尔值 

 {% endfor %}

逻辑处理

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

html

    
Title
    {
    % for i in a %}
  • {
    { i }}
  • {
    { forloop.counter }} {
    { forloop.first }} {
    { forloop.last }} {
    % endfor %}

if判断

{% if ordered_warranty %}  

{% else %}

{% endif %}

逻辑处理

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

html

    
Title
    {
    % for i in a %} {
    % if i == '首页' %}
  • {
    { i }}
  • {
    % elif i == '产品展示' %}
  • {
    { i }}
  • {
    % else %}
  • {
    { i }}
  • {
    % endif %} {
    % endfor %}

 

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

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

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

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

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

母板:{% block title %} {% endblock %} 设置可调用区块或,有参设置可调用区块,无参调用区块

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

逻辑处理 

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

母板

    
Title
{
% block css %}{% endblock %} #调用子板的css样式
头部
{
% block nei_rong %}{% endblock %} #调用子板的内容区块
尾部

子板(访问页)

{% extends "tou.html" %}  #继承母板{
% block css %}       #设置母版调用css样式区块
{
% endblock %}{
% block nei_rong %}    #设置母版调用字板内容区块
内容
{
% 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-8from 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_tagdef my_input(id, arg):    result = "" % (id, arg,)    return mark_safe(result)

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

{% load 自定义函数模块名称 %}

d、html页面使用

{% 函数名称 参数 参数 参数 %}

{% load mbanyuyan %}  #导入自定义函数模块    
Title{% my_simple_time 1 2 3 %} #传参并且执行自定义函数

 

注意:使用自定义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',)

 

 

 

 

 

 

转载地址:http://prhlo.baihongyu.com/

你可能感兴趣的文章
POJ 1222 EXTENDED LIGHTS OUT (熄灯问题)
查看>>
CSS知识点整理(1):CSS语法,层叠次序,选择器,其他重要方面。
查看>>
IIS部署错误解决集合
查看>>
什么是大数据时代的思维?
查看>>
20162329 实验五:数据结构综合应用
查看>>
刀剑如梦
查看>>
asp.net <%%> <%#%><%=%><%@%><%$%>用法与区别
查看>>
数据结构_1 排序
查看>>
WinEdt选项卡配置
查看>>
机器学习---文本特征提取之词袋模型(Machine Learning Text Feature Extraction Bag of Words)...
查看>>
oracle入门必备
查看>>
复习知识6月12日 sql语句
查看>>
Wireless Network
查看>>
TensorFlow指定GPU/CPU进行训练和输出devices信息
查看>>
三.python发展历程 系统位数 硬盘 python的安装 执行方式 变量、常量
查看>>
Android开发之EditText属性详解
查看>>
Python3 如何优雅地使用正则表达式(详解三)
查看>>
C#中的类型和SQL Server中的类型对应关系
查看>>
汇编语言第一章总结
查看>>
ubuntu关闭631(cups)端口
查看>>