Django框架全面讲解 -- 模板
来源:互联网 发布:台州首届网络风云榜 编辑:程序博客网 时间:2024/06/12 08:05
1.模板的执行
模版的创建过程,对于模版,其实就是读取模版(其中嵌套着模版标签),然后将 Model 中获取的数据插入到模版中,最后将信息返回给用户。
# view.pydef index(request): return render(request, 'index.html', {'title':'welcome'})# index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <div> <h1>{{ title }}</h1> </div></body></html>
2.模板语言
模板中也有自己的语言,该语言可以实现数据展示
{{ item }} {% for item in item_list %} <a>{{ item }}</a> {% endfor %} forloop.counter forloop.first forloop.last {% if ordered_warranty %} {% else %} {% endif %} 母板:{% block title %}{% endblock %} 子板:{% extends "base.html" %} {% block title %}{% endblock %} 帮助方法: {{ item.event_start|date:"Y-m-d H:i:s"}} {{ bio|truncatewords:"30" }} {{ my_list|first|upper }} {{ name|lower }}
小知识点:在模板语言中字典数据类型的取值是通过dict.xxx而不是dict[xxx]
3. 自定义标签
因为在模板语言中不能够做运算等一些稍显复杂的操作,所以在Django中提供了两种自定制标签,一种是simple_tag,一种是filter。
simple_tag: 任意传递参数,但是不能用作布尔判断
filter: 最多只能传递二个参数,可以用作布尔判断
在这里着重介绍simple_tag类型,filter的实现类似
a、在app中创建templatetags模块
b、创建任意 .py 文件,如:xx.py
#!/usr/bin/env python#coding:utf-8from django import templatefrom django.utils.safestring import mark_safefrom django.template.base import resolve_variable, Node, TemplateSyntaxErrorregister = template.Library()@register.simple_tagdef my_simple_time(v1,v2,v3): return v1 + v2 + v3@register.simple_tagdef my_input(id,arg): result = "<input type='text' id='%s' class='%s' />" %(id,arg,) return mark_safe(result)
c、在使用自定义simple_tag的html文件中导入之前创建的 xx.py 文件名
{% load xx %}
d、使用simple_tag
{% my_simple_time 1 2 3%}{% my_input 'id_username' 'hide'%}
e、在settings中配置当前app,不然django无法找到自定义的simple_tag
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myapp',)
更多见文档:https://docs.djangoproject.com/en/1.10/ref/templates/language/
阅读全文
0 0
- Django框架全面讲解 -- 模板
- Django框架全面讲解 -- Model
- Django框架全面讲解 -- Form
- Django框架全面讲解 -- 分页
- Django框架全面讲解 -- Cookie
- Django框架全面讲解 -- Session
- Django框架全面讲解 -- 缓存
- Django框架全面讲解 -- 信号
- Django框架全面讲解 -- admin
- Django框架全面讲解 -- Django流程介绍
- Django框架全面讲解 -- Django 路由系统
- Django框架全面讲解 -- 中间件(MiddleWare)
- Django框架全面讲解 -- 序列化
- Django框架全面讲解 -- Django Views(视图函数)
- Django框架全面讲解 -- 认证系统(auth)
- Django框架全面讲解 -- 跨站请求伪造(csrf)
- Django框架下的模板数据交互
- django模板
- 番外7>林芝·救赎之旅的最后一站·上——AI主题科幻小说《地与光》
- 反射中获取私有的对象
- 仿163网盘无刷新多文件上传系统
- 前情回顾——AI主题科幻小说《地与光》
- F3飞控的调试
- Django框架全面讲解 -- 模板
- 每日练习
- 数据库之30条军规
- JavaScript Table排序
- 中国的IT风投
- 011
- 如何配置 Health Check?
- Android学习笔记(贪吃蛇升级版)
- 程序员的自述———我(作为一名开发者)所犯过的错误