Django框架基础模板标签与filter使用方法详解

作者:爱人BT 时间:2022-10-25 18:14:43 

本文实例讲述了Django框架基础模板标签与filter使用方法。分享给大家供大家参考,具体如下:

一、基本的模板语言

1、变量

{{ }}

1.1、进入Django shell 环境


python manage.py shell

1.2、Context、Template 模块的基本使用


from django.template import Context,Template
t = Template('My name id {{ name }}')
c = Context({'name':'Stephane'})
t.render(c)

1.3、views.py 文件


def index(request):
 list = ['小明','小花','小包']
 dict = {'age':14,'user':'小高'}
 return render(request,'index.html',{'list':list,'dict':dict})

1.4、index.html 文件


<div>
 <!-- 获得列表第一个名字:“小明” -->
 {{ list.0 }}
 <!-- 获得字典中的 age 项 -->
 {{ dict.age }}
 <!-- 过滤 flite 的使用 -->
 {{ dict.age | 过滤条件 }}
</div>

2、逻辑语法

{%  %}

2.1、循环与判断

{% for   ...  in  ...  %}

{% endfor %}

{% if  %}

{% else %}

{% endif %}

{% url '网页路径' %} 指定路径

<form>

{% csrf_token %} 去除跨域csrf验证

</form>

{% load 标签库 %} 加载任意标签库

3、模板中的逻辑操作:

3.1、 ==, !=, >=, <=, >, <  这些比较都可以在模板中使用(注意:比较符号前后必须有至少一个空格!)


{% if var >= 90 %}
成绩优秀,学得不错
{% elif var >= 80 %}
成绩良好
{% elif var >= 70 %}
成绩一般
{% elif var >= 60 %}
需要努力
{% else %}
不及格啊,大哥!
{% endif %}

3.2、and, or, not, in, not in , is , is not 也可以在模板中使用


{% if num <= 100 and num >= 0 %}
num在0到100之间
{% else %}
数值不在范围之内!
{% endif %}

4、注释


{# value #}

二、Django的模板方法

1、filters 内置语法

基本语法:{{ value|filter_name:参数 }} value:变量名 ; filter_name:Django内置或者自定义filter方法; 参数:处理的值

3.1、{{ value|default:参数 }} 如果value没有传值,替换default设置的参数。

3.2、{{ value|default_if_none:参数 }} 如果value为none,替换default设置的参数。

3.2、{{ value|length }} 显示value的长度

3.3、{{ value|filesizeformat }} 将value格式化一个可以识别的大小(例子:1.5k,5M等)

3.4、{{ value|slice:" 2:1" }} 对value进行切片(支持负数)

3.5、{{ value|date:"Y:m:d H:i:s"}} 格式话时间

3.6、{{ value|safe }}  直接解析为可执行的html代码

3.7、{{ value|truncatechars:30 }} 对value进行截取,只显示30个字符,用“...”代替多余的部分

3.8、{{ value|add:10 }} 做加法运算

3.9、{{ value|capfirst }} 首字母大写

3.9、{{ value|cut:'a' }} 从字符串中移除指定的字符

2、自定义filter

2.1、在APP项目中新建 templatetags 模块 ,在.py文件中编写自定义模块


# 自定义filter的基本语法
form Django import template # 引用Django中的模块
register = template.Library() # 实例化一个模板对象
# 将自定义的 filter 注册到程序中
@register.filter
'''
 @register.filter(name = 'fleter_name') 这个装饰器把自定义的filter注册到程序中,
 让其可以使用自定义的 filter 方法; reg是 ‘|' 前面的变量 reg2是方法后面的参数。
'''
@register.filter(name = 'add')
def add(reg):
 return '{}'.format(reg)
@register.filter(name = 'add_str')
def add_str(reg,reg2):
 return '{} {}'.format(reg,reg2)

2.2、html文件的使用方法


<!-- 导入自定义的filter方法 -->
{% load filter %}
{{ value|add }}
{{ value|add_str:'123'}}
{% if num|fliter:参数 %}
 内容
{% endif %}

出现这个错误需要手动重启python程序

Django框架基础模板标签与filter使用方法详解

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

来源:https://blog.csdn.net/u011146423/article/details/82624369

标签:Django,模板标签,filter
0
投稿

猜你喜欢

  • MySQL数据库中应当如何实施info()函数

    2008-11-27 15:04:00
  • 基于Python使用永中文档转换服务的方式

    2021-09-29 12:26:12
  • 如何使用python中的networkx来生成一个图

    2022-08-13 05:13:32
  • 就 CSS3 向 Eric Meyer 请教的 6 个问题

    2008-12-29 13:52:00
  • python实现自动化上线脚本的示例

    2021-02-01 05:14:49
  • 用Python自动下载网站所有文件

    2021-02-09 18:57:35
  • python中怎么表示空值

    2022-02-09 23:59:02
  • python opencv将多个图放在一个窗口的实例详解

    2023-04-30 10:16:53
  • python使用sessions模拟登录淘宝的方式

    2023-01-09 12:05:25
  • D3.js实现绘制折线图的教程详解

    2024-04-10 10:53:54
  • mysql中order by与group by的区别

    2024-01-21 19:50:24
  • Golang的os标准库中常用函数的整理介绍

    2024-05-05 09:29:59
  • Pycharm激活方法及详细教程(详细且实用)

    2023-04-12 05:19:30
  • Python 将json序列化后的字符串转换成字典(推荐)

    2021-11-17 12:36:51
  • python pandas中DataFrame类型数据操作函数的方法

    2022-10-22 09:33:12
  • 利用django和mysql实现一个简单的web登录页面

    2024-01-13 18:16:16
  • 实现PHP框架系列文章(6)mysql数据库方法

    2024-05-02 17:08:04
  • 窥探mysql存储过程细节

    2024-01-13 07:27:52
  • Django Web开发中django-debug-toolbar的配置以及使用

    2022-12-15 22:32:14
  • MySQL多实例安装开机自启动服务配置过程

    2024-01-14 14:32:17
  • asp之家 网络编程 m.aspxhome.com