经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Django » 查看文章
Django框架基础模板标签与filter使用方法详解
来源:jb51  时间:2019/7/23 11:22:01  对本文有异议

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

一、基本的模板语言

1、变量

{{ }}

1.1、进入Django shell 环境

  1. python manage.py shell
  2.  

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

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

1.3、views.py 文件

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

1.4、index.html 文件

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

2、逻辑语法

{%  %}

2.1、循环与判断

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

{% endfor %}

{% if  %}

{% else %}

{% endif %}

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

<form>

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

</form>

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

3、模板中的逻辑操作:

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

  1. {% if var >= 90 %}
  2. 成绩优秀,学得不错
  3. {% elif var >= 80 %}
  4. 成绩良好
  5. {% elif var >= 70 %}
  6. 成绩一般
  7. {% elif var >= 60 %}
  8. 需要努力
  9. {% else %}
  10. 不及格啊,大哥!
  11. {% endif %}
  12.  

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

  1. {% if num <= 100 and num >= 0 %}
  2. num0100之间
  3. {% else %}
  4. 数值不在范围之内!
  5. {% endif %}
  6.  

4、注释

  1. {# value #}
  2.  

二、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文件中编写自定义模块

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

2.2、html文件的使用方法

  1. <!-- 导入自定义的filter方法 -->
  2. {% load filter %}
  3. {{ value|add }}
  4. {{ value|add_str:'123'}}
  5. {% if num|fliter:参数 %}
  6. 内容
  7. {% endif %}
  8.  

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

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号